一文讀懂Python數(shù)字、字符串、列表和元組是否可以作為字典的鍵
在Python中,字典(dictionary)是一種可變的數(shù)據(jù)結(jié)構(gòu),它存儲鍵值對(key-value pairs)。對于字典的鍵,Python確實(shí)允許使用多種數(shù)據(jù)類型,包括數(shù)字、字符串、列表和元組。但是,要注意的一點(diǎn)是,列表是不能作為字典的鍵的,因?yàn)榱斜硎强勺兊模╩utable),而字典的鍵必須是不可變的(immutable)。元組在作為鍵時,只要其包含的元素都是不可變的,那么它就可以作為字典的鍵。
下面是使用數(shù)字、字符串和元組作為字典鍵的示例:
# 使用數(shù)字作為鍵
num_dict = {
1: 'one',
2: 'two',
3: 'three'
}
# 使用字符串作為鍵
str_dict = {
'name': 'Alice',
'age': 30,
'city': 'New York'
}
# 使用元組作為鍵(只要元組中的元素都是不可變的)
tuple_dict = {
(1, 'a'): 'value1',
(2, 'b'): 'value2',
(3, 'c'): 'value3'
}
print(num_dict)
print(str_dict)
print(tuple_dict)
運(yùn)行以上代碼,您將得到三個字典,它們的鍵分別是數(shù)字、字符串和元組。
然而,嘗試使用列表作為字典的鍵將會導(dǎo)致一個TypeError,因?yàn)榱斜硎强勺兊模?/p>
# 嘗試使用列表作為鍵(這將失?。?
list_dict = {
[1, 2, 3]: 'value' # 這會拋出TypeError
}
如果您嘗試運(yùn)行上述代碼,將會得到一個錯誤,類似于:
TypeError: unhashable type: 'list'
這是因?yàn)樽值涞逆I必須是可哈希的(hashable),而列表不是可哈希的??晒R馕吨鴮ο缶哂胁蛔兊墓V?,這樣字典才能根據(jù)鍵快速查找值。數(shù)字、字符串和元組(如果它們包含的元素都是不可變的)都是可哈希的,而列表則不是。