簡體   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