簡體   English   中英

Python中的列表與元組情況

[英]A list vs. tuple situation in Python

是否存在使用列表導致錯誤的情況,您必須使用元組代替?

我對元組和列表的屬性有所了解,但還不足以找到這個問題的答案。 如果問題是相反的,那就是列表可以調整但元組卻沒有。

您可以使用元組作為字典鍵,因為它們是不可變的,但您不能使用列表。 例如:

d = {(1, 2): 'a', (3, 8, 1): 'b'}  # Valid.
d = {[1, 2]: 'a', [3, 8, 1]: 'b'}  # Error.

由於它們不可改變的性質,元組(不同於列表)是可以清除的 這就是允許元組成為字典中的鍵以及集合成員的原因。 嚴格來說,這是他們的可靠性,而不是他們的不變性。

因此,除了已經給出的字典鍵答案之外,還有一些適用於元組但不適用於列表的其他內容:

>>> hash((1, 2))
3713081631934410656

>>> set([(1, 2), (2, 3, 4), (1, 2)])
set([(1, 2), (2, 3, 4)])

字符串格式中,元組是必需的:

"You have %s new %s" % ('5', 'mails') # must be a tuple, not a list!

在該示例中使用列表會產生錯誤“格式字符串的參數不足”,因為列表被視為一個參數。 奇怪但真實。

暫無
暫無

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

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