zip是用于并行遍历的函数,常常被用到循环之中。
zip()的作用就是把list1和list2两个对象中的对应元素放到一个元组(a,b)中,然后对这两个元素进行操作。这里可以理解为“压缩”。
>>> list1 [2, 4, 6, 8]
>>> list2 [11, 13, 15, 17, 19]
>>> zip(list1,list2)
[(2, 11), (4, 13), (6, 15), (8, 17)]
# 找不到配对的19就给丢掉了
加一个*
号用于解压缩:
>>> result = zip(list1,list2)
>>> result [(2, 11), (4, 13), (6, 15), (8, 17)]
>>> zip(*result) # 加一个*号
[(2, 4, 6, 8), (11, 13, 15, 17)] # 放到了两个对应的元组里
zip真正的用途在于让某些循环简化,特别是在用python读取数据库的时候(比如mysql):
>>> myinfor.values() #得到两个list
['python', 'qiwsir', 'qiwsir.github.io']
>>> myinfor.keys()
['lang', 'name', 'site']
>>> temp = zip(myinfor.values(),myinfor.keys()) #压缩成一个list,每个元素是一个tuple
>>> temp
[('python', 'lang'), ('qiwsir', 'name'), ('qiwsir.github.io','site')]
>>> dict(temp) #这是函数dict()的功能,将上述列表转化为dictionary,实现键-值转化!!
{'python': 'lang', 'qiwsir.github.io': 'site', 'qiwsir': 'name'}