Python中zip函数的核心用法与实战解析
本文深入解析Python内置函数zip()的用法。zip()用于将多个序列元素打包为元组,结果长度由最短序列决定。文章展示了zip与enumerate结合遍历、利用*操作符反转配对数据,以及构建字典列表等常见场景,帮助开发者高效处理并行序列数据。
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()的常见应用场景包括同时遍历多个序列
在实际开发中,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()“配对”好的序列数据
可以利用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个列表(或序列)中相同位置的元素提取出来,组合成新的数据元组。
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}]以上为个人经验总结,希望能为大家提供参考,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









