Python中的配对函数zip()解读

目录

Python配对函数zip()

1、zip将列表、元组或其他序列的元素进行配对

新建成一个元组构成的列表,它生成列表长度由最短的序列决定:

#zip
seq1=[\'foo\',\'bar\',\'baz\']
seq2=[\'one\',\'two\',\'three\']
zipped=zip(seq1,seq2)
list(zipped)
>>>
>[(\'foo\', \'one\'), (\'bar\', \'two\'), (\'baz\', \'three\')]

seq3=[True,False]
zipped2=zip(seq1,seq2,seq3)
list(zipped2)
>>>
>
[(\'foo\', \'one\', True), (\'bar\', \'two\', False)]

2、zip的常用场景为同时遍历多个序列

有时和enumerate搭配使用:

mapping={}
for i,(a,b) in enumerate(zip(seq1,seq2)):
    print(\'{0},{1},{2}\'.format(i,a,b))
    mapping[i]=(a,b)
print(mapping)
>>>
>0,foo,one
1,bar,two
2,baz,three
{0: (\'foo\', \'one\'), 1: (\'bar\', \'two\'), 2: (\'baz\', \'three\')}

3、对于已“配对”的序列

利用zip函数进行拆分

pitchers=[(\'a\',\'1\'),(\'b\',\'2\'),(\'c\',\'3\')]
first_names,last_names=zip(*pitchers)
print(first_names,last_names)
>>>
>(\'a\', \'b\', \'c\') (\'1\', \'2\', \'3\')

说说zip函数的主要用途

个人理解

zip函数主要用来将n个list中相同location的元素取出来,组成新的data

years = [22,23,24]
names = [\'hjw\',\'hyr\',\'lyq\']
 
a = zip(names,years) 
print(a)        # <zip object at 0x000001A69F80F0C0>
print(list(a))  # [(\'hjw\', 22), (\'hyr\', 23), (\'lyq\', 24)]
 
data = []
for (year,name) in zip(years,names):
    data.append({\'name\':name,\'year\':year})
print(data)
# [{\'name\': \'hjw\', \'year\': 22}, {\'name\': \'hyr\', \'year\': 23}, {\'name\': \'lyq\', \'year\': 24}]

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容