python - zip(list) 和 zip(*list) 的区别

标签 python python-3.x

我正在使用列表 p = [[1,2,3],[4,5,6]]

如果我这样做:

>>>d=zip(p)
>>>list(d)
[([1, 2, 3],), ([4, 5, 6],)]

虽然,我真正想要的是使用这个获得的:

>>>d=zip(*p)
>>>list(d)
[(1, 4), (2, 5), (3, 6)]

我发现在列表名称前添加“*”可以提供所需的输出,但我无法确定它们的操作有何不同。你能解释一下区别吗?

最佳答案

zip 想要将一堆参数压缩在一起,但您拥有的是一个参数(一个列表,其元素也是列表)。 * 函数调用中的“解包”列表(或其他可迭代),使其每个元素成为单独的参数。因此,如果没有 *,您正在执行 zip([[1,2,3],[4,5,6]])。使用 *,您正在执行 zip([1,2,3], [4,5,6])

关于python - zip(list) 和 zip(*list) 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29139350/

相关文章:

python-3.x - 如何修复 'invalid syntax' 以下载 spacy 模型

python - 处理 pandas.datetime 类型时出现消息 "Exception ignored"

python - 如何在 ubuntu 操作系统中安装 python smtplib 模块

python - 单元格边界 Gtk Treeview Python

python - 如何编写一个 python HTTP 服务器来监听多个端口?

python - 如何将摘要的前 n 位转换为整数?

python - Keras 的 fit_generator 额外训练值

python - 不要等待异步函数完成

python - 将两个 panda 数据帧相乘以重复数据一定次数

python - 在 python 列表中向后或向前循环以查找匹配项