面试题-python3 内置函数map reduce filter 如何使用?

前言

面试时候经常会考到 map reduce filter 这三个内置函数的使用

map() 函数

map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
map() 函数语法:map(function, iterable, …)

  • function — 函数

  • iterable — 一个或多个可迭代对象

Python 3.x 返回迭代器

题1:有个列表a = [1, 2, 3, 4]  计算列表中每个数除以2 取出余数 得到 [1,0,1,0]

a = [1, 2, 3, 4]
# map使用
def get_yushu(x):
return x % 2
print(map(get_yushu, a)) # map object
print(list(map(get_yushu, a))) # [1, 0, 1, 0]

# 使用匿名函数
print(list(map(lambda x: x%2, a)))

题2:请将列表 [1,2,3,4,5] 使用python方法转变成 [1,4,9,16,25]

a = [1, 2, 3, 4, 5]
# 计算平方的函数
def seq(x):
return x**2
print(list(map(seq, a)))

# 匿名函数
print(list(map(lambda x: x**2, a)))

使用总结:map函数的功能可以理解成,对可迭代对象中的成员分别做一个功能计算,得到一个新的可迭代对象

题3:map函数对列表a=[1,3,5],b=[2,4,6]相乘得到[2,12,30]

map函数是可以传多个可迭代对象的

a = [1, 3, 5]
b = [2, 4, 6]

def chengji(x, y):
return x*y
print(list(map(chengji, a, b)))

# 匿名函数
print(list(map(lambda x, y: x*y, a, b)))

reduce() 函数

在 Python3 中,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 functools 模块里,如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数
使用语法:reduce(function, sequence, initial=None)
参数:

  • function  调用的function必须有2个参数

  • sequence  传一个序列

  • initial 是初始值,默认为None

例如:reduce(lambda x,y:x+y,[1,2,3,4,5])计算((((1+2)+3)+4)+5)

题4:计算1-100的和

from functools import reduce

def add(x, y):
return x + y
print(reduce(add, range(1, 101)))

# 也可以用匿名函数
print(reduce(lambda x,y: x+y, range(1, 101)))

题5:reduce函数计算10!

# reduce 计算10!
from functools import reduce

print(reduce(lambda x, y: x*y, range(10, 0, -1)))

题6:计算1!+2!+3!+。。。+10!

from functools import reduce

# # i的阶乘
# i = 10
# a = reduce(lambda x, y: x*y, range(1, i+1))

# 先生成每个阶乘的列表
x = [reduce(lambda x, y: x*y, range(1, i+1)) for i in range(1, 11)]
b = reduce(lambda a,b: a+b, x)
print(b)

filter() 函数

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
filter() 方法的语法: filter(function, iterable)
参数

  • function — 判断函数。

  • iterable — 可迭代对象。

返回filter object 迭代器对象

题7:有个列表a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8] 使用filter 函数过滤出大于0的数

a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8]
def great_then_0(x):
"""判断大于0"""
return x > 0
print(filter(great_then_0, a))
print(list(filter(great_then_0, a)))

题8:列表b = [“张三”, “张四”, “张五”, “王二”] 过滤掉姓张的姓名

def remove_zhang(x):
return not str(x).startswith("张")
print(list(filter(remove_zhang, b)))

# 也可以用lambda
print(list(filter(lambda x: not str(x).startswith("张"), b)))

题9:过滤掉列表中不及格的学生
a = [
       {“name”: “张三”, “score”: 66},
       {“name”: “李四”, “score”: 88},
       {“name”: “王五”, “score”: 90},
       {“name”: “陈六”, “score”: 56},
    ]

# 过滤掉列表中不及格的学生
a = [
{"name": "张三", "score": 66},
{"name": "李四", "score": 88},
{"name": "王五", "score": 90},
{"name": "陈六", "score": 56},
]

# 返回
print(list(filter(lambda x: x.get("score")>=60, a)))

2021年第七期《python接口自动化+测试开发》课程,4月18号开学(火热报名中!)

本期上课时间:4月18号-7月11号,每周六、周日晚上20:30-22:30

(0)

相关推荐

  • Python常用的8个高级函数

    lambda 它们在其他语言中也被称为匿名函数.如果你不想在程序中对一个函数使用两次,你也许会想用lambda表达式,它们和普通的函数完全一样. lambda argument: manipulate ...

  • Python高阶函数

    该篇中主要介绍什么是高阶函数,高阶函数的用法以及几个常见的内置的高阶函数. 什么是高阶函数? 高阶函数:一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身, ...

  • Python中的函数式编程教程,学会用一行代码搞定所有内容

    https://m.toutiao.com/is/JEUURVQ/ 前言 在本文中,您将了解什么是函数范型,以及如何在Python中使用函数式编程.在Python中,函数式编程中的map和filter ...

  • Learn Functional Python in 10 Minutes | Datacruiser's Blog

    最近在学习python,对函数式编程特别感兴趣,当然,这并不是python的专利,不过最近确实看到一遍文章正好以python为例来讲解函数式编程,特把它翻译过来与大家分享. 原文链接如下: Learn ...

  • python27 repr( Python3内置函数(4)——ascii)

    python3 https://www.cnblogs.com/sesshoumaru/p/5976913.html

  • Python 内置函数最全汇总,现看现用

    今天,好好看看这些Python内置函数,也许你明天就能用到Python 内置函数最全汇总:1 abs()绝对值或复数的模In [1]: abs(-6)Out[1]: 62 all() 接受一个迭代器, ...

  • Python学习教程:Python 内置函数最全汇总(上篇)

    Python学习教程:Python 内置函数最全汇总(一) 1 abs() 绝对值或复数的模 In [1]: abs(-6)Out[1]: 6 2 all() 接受一个迭代器,如果迭代器的所有元素都为 ...

  • Python学习教程:Python内置函数大总结(下篇)

    这里接着上次的Python学习教程,给大家总结了Python 剩下的33个内置函数. 31 hash() 返回对象的哈希值 In [112]: hash(xiaoming)Out[112]: 6139 ...

  • python中的内置函数

    前言 本人只在csdn写博客 内置函数 介绍 一. 数学运算 abs()求绝对值函数 round() 近似取值 pow()求指数 divmod()求商和余数 max()求最大值和min()求最小值 s ...

  • Python内置函数包含哪些?五大类!

    所谓的内置函数,就是Python给你提供的,直接可以拿来使用的函数,比如说print.input等.那么Python内置函数有哪些?小编为你整理了几个比较重要的函数,一起来看看吧. 在学习Python ...

  • 285个通达信内置函数

    (2020-03-29 17:51:34) 原文地址:285个通达信内置函数作者:股市沙盘 函数名称说明函数分类 !=  不等于操作函数    #  变周期符号操作函数    $  引用特定数据操作函 ...

  • 福利来了!68个Python内置函数最全总结,建议收藏!

    小编是个资深Python爱好者,今天帮大家从10个方面总结了Python3.9版本下的68个内置函数,让大家一网打尽Python内置函数,一起来看看吧. 01.运算函数 abs(x) abs函数用来返 ...

  • 12个python数据处理常用内置函数

    简说Python 以下文章来源于python数据分析之禅 ,作者小dull鸟  简说Python推荐  来源|python数据分析之禅 作者|小dull鸟 在python数据分析中,经常需要对字符串进 ...