python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python zip函数

python中zip函数用法详解(全)

作者:577wq

这篇文章主要给大家介绍了关于python中zip函数用法详解的相关资料,zip()是Python的一个内建函数,文中通过代码介绍的非常详细,需要的朋友可以参考下

Python 的 zip()

在Python中,zip()是一个内置函数,用于将多个可迭代对象(例如列表、元组等)打包成一个元组的迭代器。它接受多个参数,每个参数代表一个可迭代对象,并返回一个迭代器,每次迭代返回一个包含来自每个可迭代对象的元素组成的元组。

下面是zip()函数的基本语法:

zip(*iterables)

其中,*iterables表示可变数量的可迭代对象参数,可以是列表、元组等。

以下是一个示例

展示如何使用zip()函数将两个列表打包成一个元组的迭代器:

fruits = ['apple', 'banana', 'orange']
prices = [1.0, 0.5, 0.8]
for fruit, price in zip(fruits, prices):
    print(fruit, price)

输出:

apple 1.0
banana 0.5
orange 0.8

在上述示例中,zip(fruits, prices)fruitsprices两个列表打包成一个元组的迭代器。在每次迭代中,fruit变量接收fruits列表中的元素,price变量接收prices列表中的元素,然后打印它们。

如果传入的可迭代对象长度不一致,zip()函数会以最短的可迭代对象为准,忽略多余的元素。

您还可以使用list()函数将zip()的结果转换为列表,或使用tuple()函数将其转换为元组。

zip()函数的应用

矩阵相加减、点乘(也可以用for循环+列表推导式实现)

In [10]: m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
In [11]: n = [[1, 1, 1], [2, 2, 3], [3, 3, 3]]
# 矩阵的点乘
In [13]: [x*y for a, b in zip(m, n) for x, y in zip(a, b)]
Out[13]: [1, 2, 3, 8, 10, 18, 21, 24, 27]
# 矩阵相加
In [14]: [x+y for a, b in zip(m, n) for x, y in zip(a, b)]
Out[14]: [2, 3, 4, 6, 7, 9, 10, 11, 12]

总结

到此这篇关于python中zip函数用法详解的文章就介绍到这了,更多相关python zip函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文