python zip()函数的使用示例
zip()函数将可迭代的对象作为参数,将对象对应的元素打包成一个个元祖,然后返回由这些元祖组成的对象,我们可以使用list()转换成列表
如果各个迭代器的元素个数不一致,则返回列表长度和最小的对象相同,用*好操作符,可以将元祖解压为列表
1.两个或者多个list
a=[1,2,3] b=[4,5,6] c=[7,8,9,10] #两个list去zip() zip(a,b) #三个list去zip(),返回的对象的长度和最小的迭代器一致 zip(a,b,c) #用list()查看zip后的数据 list(zip(a,b))#[(1,4),(2,5),(3,6)] list(zip(a,b,c))#[(1,4,7),(2,5,8),(3,6,9)] #使用zip(*zip())解压 a1,b1=zip(*zip(a,b)) #两个list迭代输出 fori,jinzip(a,b): print(i,j)
输出:
14
25
36
2.如有两个list,一个是一层,一个是嵌套,要组成一个dict
#将zip对象转换成字典看看 a=[1,2,3] d=[['a','b','c'],['aa','bb','cc'],['aaa','bbb','ccc']] dict(zip(a,d))#{1:['a','b','c'],2:['aa','bb','cc'],3:['aaa','bbb','ccc']} #如果一个是key值,一个内层list就是一行value [dict(zip(a,value))forvalueind]#[{1:'a',2:'b',3:'c'}, {1:'aa',2:'bb',3:'cc'}, {1:'aaa',2:'bbb',3:'ccc'}] #或者是 l=[] forvalueind: dict={} foriinrange(len(value)): dict[a[i]]=value[i] l.append(dict)
3.同时遍历两个dict
如果长度相同的dict直接用zip函数即可同时for
如果长度不同,可以先把这两个dict整合进一个list再for
dict_1=dict(zip(a,b))#{1:4,2:5,3:6} dict_2=dict(zip(a,d))#{1:['a','b','c'],2:['aa','bb','cc'],3:['aaa','bbb','ccc']} #key的遍历 fori,jinzip(dict_1,dict_2): print(i,j)
输出:
11
22
33
#values的遍历 fori,jinzip(dict_1.values(),dict_2.values()): print(i,j)
输出:
4['a','b','c']
5['aa','bb','cc']
6['aaa','bbb','ccc']
#同时遍历,需要2个dict的value都是多层的 dict_4=dict(zip(b,d))#{4:['a','b','c'],5:['aa','bb','cc'],6:['aaa','bbb','ccc']} fori,jinzip(dict_4,dict_2): forkindict_4[i]: print(i,k) formindict_2[j]: print(j,m)
输出:
4a
4b
4c
1a
1b
1c
5aa
5bb
5cc
2aa
2bb
2cc
6aaa
6bbb
6ccc
3aaa
3bbb
3ccc
以上就是pythonzip()的使用示例的详细内容,更多关于pythonzip()的资料请关注毛票票其它相关文章!