首页 >后端开发 >Python教程 >为什么 Python 中的压缩列表会生成元组列表,而不是串联列表?

为什么 Python 中的压缩列表会生成元组列表,而不是串联列表?

DDD
DDD原创
2024-12-18 20:17:11151浏览

Why Does Zipping Lists in Python Result in a List of Tuples, Not a Concatenated List?

Python 中的压缩列表:大小不匹配说明

尝试将多个列表压缩在一起时,可能会遇到有关结果列表大小的意外行为。本文解决了一个常见的误解,并提供了对 zip() 在 Python 中如何运行的清晰理解。

最初,尝试压缩三个大小为 20 的列表的程序可能会预期得到大小为 3 的结果列表。然而,生成的 zipall 列表却包含 20 个元素。出现这种差异是因为 zip() 不连接列表;相反,它创建一个元组列表,每个元组包含原始列表中的相应元素。

考虑以下示例:

a = b = c = range(20)
zipall = zip(a, b, c)

输出 zipall 列表将有 20 个元素,每个元素element 是 (a_element, b_element, c_element) 形式的元组:

[(0, 0, 0),
 (1, 1, 1),
 ...
 (17, 17, 17),
 (18, 18, 18),
 (19, 19, 19)]

因此,要确定每个元组中的元素数量,可以检查以下任意元素的长度:

len(zipall[0])

这将返回长度 3,表示每个元组包含三个元素。

请注意,如果原始列表为空,则 len(zipall) 表达式将返回 0,因为空列表没有任何可用于压缩的元素。

以上是为什么 Python 中的压缩列表会生成元组列表,而不是串联列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn