Python中zip函数的核心用法与实战解析

江屿
江屿
发布时间:2026-10-16 | 3人浏览过
原创

本文深入解析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}]

以上为个人经验总结,希望能为大家提供参考,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表