Python中zip()函数的用法与示例
zip()函数是Python中内置功能强大的一个函数,它可以将多个可迭代对象(包括列表、元组、集合、字典等)合并成一个新的可迭代对象。zip()函数的使用方式非常简单,与其他许多内置函数一样,只需传入一个或多个参数即可完成操作。本文将介绍zip()函数的基本用法以及示例。
基本语法
zip()函数的基本语法为:
zip(iter1[, iter2[, ...]])
参数说明:
- iter1, iter2, …:待合并的多个可迭代对象,可以是列表、元组、集合、字典等。
返回值说明:
- 返回一个可迭代的zip对象,其中包含了每个可迭代对象中相同位置上的元素组成的元组。
示例1
假设现在有两个列表,一个是姓名列表,一个是年龄列表,要将两个列表分别对应地合并成一个新的列表,分别包含姓名和年龄。
代码如下:
names = ['Tom', 'Jerry', 'Spike', 'Tyke']
ages = [24, 33, 38, 3]
for name, age in zip(names, ages):
print(name, age)
执行结果为:
Tom 24
Jerry 33
Spike 38
Tyke 3
上述代码使用了for循环和zip()函数来实现将两个列表分别对应地合并成一个新的列表,分别包含姓名和年龄。
示例2
假设现在有三个列表,一个是水果列表,一个是颜色列表,还有一个是价格列表,要将三个列表分别对应地合并成一个新的列表,包含水果、颜色和价格,而且要求该新的列表中的每个元素都以字典的形式表示。
代码如下:
fruits = ['apple', 'orange', 'banana', 'pear']
colors = ['red', 'orange', 'yellow', 'green']
prices = [3.5, 4, 2, 5]
info = []
for fruit, color, price in zip(fruits, colors, prices):
d = {'fruit': fruit, 'color': color, 'price': price}
info.append(d)
print(info)
执行结果为:
[{'fruit': 'apple', 'color': 'red', 'price': 3.5}, {'fruit': 'orange', 'color': 'orange', 'price': 4}, {'fruit': 'banana', 'color': 'yellow', 'price': 2}, {'fruit': 'pear', 'color': 'green', 'price': 5}]
上述代码使用了for循环和zip()函数来实现将三个列表分别对应地合并成一个新的列表,包含水果、颜色和价格,而且该新的列表中的每个元素都以字典的形式表示。
注意事项
需要注意的是,zip()函数的返回值为一个zip对象,如果需要将其转换成列表或元组等其它类型的可迭代对象,需要使用list()、tuple()等函数进行转换。
zip()函数的参数个数可以不固定,但需要保证待合并的多个可迭代对象的长度相同,否则多余的部分将会被忽略。
如果希望zip()函数返回的新的可迭代对象的长度同原来的可迭代对象中长度最短的一个相同,可以使用itertools模块中的zip_longest函数实现。
