[英]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.