簡體   English   中英

[]和list有什么區別

[英]What's the difference between [] and list

>>>list(123)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>>[123]
[123]

為什么list [123]在[]工作時會導致異常?

list()是一個類型構造函數。放在方括號中的內容必須是可迭代的,即可以使用循環來迭代的東西。 像字符串或整數列表或浮點數。 作為整數本身是不可迭代的。 list(123)給出錯誤。 但是如果您輸入list('123'); 然后它將返回一個列表為['1','2','3']。

在[123]的情況下,它表示單個整數123的列表。因此它可以工作。 就像在解釋器中編寫23並得到23一樣。

對於空列表,使用[]會更好,因為它更快並且避免了名稱查找

內置的list()對於將其他可迭代對象轉換為列表很有用。

因為list是一個可調用對象,它以一個對象作為參數,並且必須是可迭代的,所以[]是列表文字,並且理解提供的單個int應該是列表的唯一元素。

如果要使用list ,則必須將數字包裝到可迭代的list((123,)) ,例如list((123,))

list()構造函數的語法為:

list([iterable])

而且int是不可迭代的。 所以..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM