繁体   English   中英

Python - 压缩时的星号

[英]Python - asterisk when zipping

我是 python 的新手,我不明白为什么以下不起作用:

ea = zip([[200, 1], [10, 1]])

因为我得到

[([200, 1],), ([10, 1],)]

而我应该添加一个星号

ea = zip(*[[200, 1], [10, 1]])

获得我想要的结果,即

[(200, 10), (1, 1)]

我以为 * 是为了将列表转换为元组,我哪里错了?

如果您有时间可以阅读这篇文章,这是了解*在 Python 中如何工作的好资源。

Python 中的星号解包函数调用的参数,请参考这里

z = [4, 5, 6]
f(*z)

将与:

f(4,5,6)

**字典中的工作与列表中的*类似。

zip需要多个参数,如下所示:

>>> zip([200, 1], [10, 1])
[(200, 10), (1, 1)]

如果您只想使用一个参数,请使用*因为它具有将其分解为多个参数的效果:

>>> zip(*[[200, 1], [10, 1]])
[(200, 10), (1, 1)]
>>> 

*不会将列表转换为元组。 它解压列表( 文档)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM