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中文网其他相关文章!