map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并经过把函数 f 依次做用在 list 的每一个元素上,获得一个新的 list 并返回。python
map(function, iterable, ...) function -- 函数 iterable -- 一个或多个序列函数
Python 2.x 返回列表。code
Python 3.x 返回迭代器。orm
res = map((lambda x: x**2 if x < 3 else x**3), [1, 2, 3, 4, 5]) for i in res: print(i)
注:对象
1.map()函数不改变原有的 list,而是返回一个新的 list。ip
2.利用map()函数,能够把一个 list 转换为另外一个 list,只须要传入转换函数。内存
例:假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:
输入:['adam', 'LISA', 'barT']
输出:['Adam', 'Lisa', 'Bart']it
def format_name(s): s1 = s[0:1].upper()+s[1:].lower() return s1 res = map(format_name, ['adam', 'LISA', 'barT']) for i in res: print(i)
l2 = map(lambda x, y: x**y, [1, 2, 3], [1, 2, 3]) for i in l2: print(i) ''' 1 4 27 '''
l3 = map(lambda x, y: (x**y, x+y), [1, 2, 3], [1, 2, 3]) for i in l3: print(i) # 打印三个元祖 ''' (1, 2) (4, 4) (27, 6) '''
python3中能够处理类表长度不一致的状况,但没法处理类型不一致的状况。io
l4 = map(lambda x, y: (x**y, x+y), [1, 2, 3], [1, 2]) for i in l4: print(i) ''' (1, 2) (4, 4) '''
用传给 reduce 中的函数 function(有两个参数)先对集合中的第 一、2 个元素进行操做,获得的结果再与第三个数据用 function 函数运算,最后获得一个结果。即reduce() 函数会对参数序列中元素进行累积。function
reduce(function, iterable[, initializer])
function -- 函数,有两个参数
iterable -- 可迭代对象
initializer -- 可选,初始参数
可计算列表元素和或阶乘。
注:在 Python3 中,reduce() 函数已经被从全局名字空间里移除了,它如今被放置在 functools 模块里,若是想要使用它,则须要经过引入 functools 模块来调用 reduce() 函数:
from functools import reduce num = [1, 2, 3, 4, 5] print(reduce(lambda x, y: x + y, num, 1)) print(reduce(lambda x, y: x * y, num)) # 输出 ''' 16 120 '''
该接收两个参数,第一个为函数,第二个为序列,序列的每一个元素做为参数传递给函数进行判,而后返回 True 或 False,最后将返回 True 的元素放到新列表中。
filter(function, iterable)
function -- 判断函数。
iterable -- 可迭代对象。
Python 2.x 返回列表。
Python 3.x 返回迭代器。
# 过滤出列表中的全部奇数 num = [1, 2, 3, 4, 5] newlist = filter(lambda x: x % 2 == 1, num) for i in newlist: print(i, end=' ') # 输出 ''' 1 3 5 '''
any(x)判断x对象是否为空对象,若是都为空、0、false,则返回false,若是不都为空、0、false,则返回true
all(x)若是all(x)参数x对象的全部元素不为0、' '、False或者x为空对象,则返回True,不然返回False
zip() 函数用于将可迭代的对象做为参数,将对象中对应的元素打包成一个个元组,而后返回由这些元组组成的对象,这样作的好处是节约了很多的内存。
咱们可使用 list() 转换来输出列表。
print(list(zip(('a', 'n', 'c'), (1, 2, 3)))) print(list(zip(('a', 'n', 'c'), (1, 2, 3, 4)))) print(list(zip(('a', 'n', 'c', 'd'), (1, 2, 3)))) [('a', 1), ('n', 2), ('c', 3)] [('a', 1), ('n', 2), ('c', 3)] [('a', 1), ('n', 2), ('c', 3)]