一、map 函数
map(function, iterable, ...)
map() 会根据提供的函数对指定序列做映射。可以将一个函数作用到可迭代的序列中,并返回函数输出的序列。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
# 示例
mylist = list(map(upper, ['sentence', 'fragment']))
list_of_ints = list(map(int, "1234567"))
二、reduce 函数
reduce()
函数与map()
函数不同个,其输入的函数需要传入两个参数。reduce()
的过程是先使用输入函数对序列中的前两个元素进行操作,得到的结果再和第三个元素进行运算,直到最后一个元素。
三、filter 函数
filter()
函数的作用主要是通过输入函数对可迭代序列进行过滤,并返回满足过滤条件的可迭代序列。
def is_odd(n):
return n % 2 == 0
filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])
# return: [2, 4, 6, 10]
四、sorted 函数
sorted()
函数可以完成对可迭代序列的排序。与列表本身自带的 sort()
函数不同,这里的sorted()
函数返回的是一个新的列表。sorted()
函数可以传入关键字key
来指定排序的标准,参数reverse
代表是否反向。
sorted([3, 5, -87, 0, -21], key=abs, reverse=True) # 绝对值排序,并且为反序
# return: [-87, -21, 5, 3, 0]
五、lambda 匿名函数
对于一些简单的逻辑函数,可以使用lambda
匿名函数表达式来取代韩式的定义,这样可以节省函数名称的定义,以及简化代码的可读性等。
add = lambda x, y: x + y
add(1, 2)
# return: 3