23 - 字典鍵值支持哪些數據類型

1. 有哪些數據類型不能作爲字典鍵值的類型

  • 列表
  • 字典
d = {}
d['name'] = 'Bill'
d[10] = 20
d[True] = False
d[12.3] = 20.1

d[(1, 2, 3)] = [4 ,5 ,6]

class Person:
    pass

p1 = Person()
p2 = Person()

d[p1] = 'p1'
d[p2] = 'p2'

for k,v in d.items():
    print(k, ' - ', v)
    
print(d[12.3])

# 無法哈希
# d[[1, 2, 3]] = 3

# d[{'a': 3}] = 4
name  -  Bill
10  -  20
True  -  False
12.3  -  20.1
(1, 2, 3)  -  [4, 5, 6]
<__main__.Person object at 0x000001C757A3FE48>  -  p1
<__main__.Person object at 0x000001C75802D0B8>  -  p2
20.1

2. 爲什麼列表和字典類型的值不能作爲字典的鍵值

  • key 是不能變的,列表和字典的值是可以變化的,一旦變化,就再也找不到value 了

24 - 對產生器類型的對象使用切片

發佈了128 篇原創文章 · 獲贊 128 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章