Python zip()函数用法实例分析
简介
zip()是Python的内置函数,可以将多个可迭代对象(如列表、元组等)打包成一个元组列表,同时只要有一个可迭代对象到达了尽头,这个函数就会停止打包。
基本用法
zip()有以下基本语法:
zip([iterable, ...])
其中,iterable可以是一个或多个序列,如列表、元组等。zip()函数返回一个迭代器,该迭代器输出的类型是元组。具体来说,若给定n个序列x1, x2, …, xn,则zip()函数将这些序列的第i个元素组成一个元组(x1[i], x2[i], …, xn[i])。
以下是一个最基本的示例:
fruits = ['apple', 'banana', 'cherry']
numbers = [1, 2, 3]
result = zip(fruits, numbers)
print(result)
输出结果如下:
<zip object at 0x000001>
需要注意,输出的结果是一个迭代器,不能直接打印。如果希望查看迭代器的内容,需要将它转换成列表或其他可迭代的对象。
fruits = ['apple', 'banana', 'cherry']
numbers = [1, 2, 3]
result = zip(fruits, numbers)
print(list(result))
输出结果如下:
[('apple', 1), ('banana', 2), ('cherry', 3)]
处理不等长序列
当输入的序列长度不同时,zip()函数会自动以最短序列长度为准,来截取其他序列,这里提供一个示例:
fruits = ['apple', 'banana', 'cherry']
numbers = [1, 2]
result = zip(fruits, numbers)
print(list(result))
输出结果如下:
[('apple', 1), ('banana', 2)]
可以看出结果只取了‘apple’和‘banana’两个值。
若我们希望保留最长序列中剩余的元素,可以使用itertools库中的zip_longest()函数。下面是一个示例:
import itertools
fruits = ['apple', 'banana', 'cherry']
numbers = [1, 2]
result = itertools.zip_longest(fruits, numbers, fillvalue = 0)
print(list(result))
输出结果如下:
[('apple', 1), ('banana', 2), ('cherry', 0)]
可以看到,最长序列中的元素‘cherry’被填充了0。
总结
zip()函数是一个很常用的函数,它可以将多个序列进行打包,输出的结果可以用来进行迭代或存储等操作。在处理不等长序列时,我们需要使用itertools库中的zip_longest()函数来保证最长序列中值不被截掉。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python zip()函数用法实例分析 - Python技术站