python中的几个常用高阶函数包括:filter、map、reduce、zip、sorted
本文主要对zip进行说明
zip
(*iterables)
zip函数对多个可迭代对象进行处理,每次取一个各迭代对象的元素,组成新的元组,元组的数量由参数中长度最短的可迭代对象决定,最终返回的zip对象就是包含了一个个这样的元组。当使用zip(*)时。表示解压操作
示例1 对多个不同类型的可迭代对象进行合并
alist = ['a', 'b', 'c']
atuple = (1,2,3,4)
astring = 'testzip'
print(list(zip(alist, atuple, astring)))
#输出
[('a', 1, 't'), ('b', 2, 'e'), ('c', 3, 's')]
示例2 使用zip反转字典中的key-value
adict = {'a': 1, 'b': 2, 'c': 3}
print(dict(zip(adict.values(), adict.keys())))
#输出
{1: 'a', 2: 'b', 3: 'c'}
示例3 使用zip(*)进行解压操作
azip = [(1, 2, 3), ('a', 'b', 'c')]
atuple, btuple, ctuple = zip(*azip)
print(atuple)
print(btuple)
print(ctuple)
#输出
(1, 'a')
(2, 'b')
(3, 'c')