一、基本介紹
dict.fromkeys(keys[, value])
是Python字典(dict)類中的一個靜態方法,用於創建並返回一個新的字典,其中包含指定鍵序列(keys)中所有鍵的鍵值,默認的鍵值是None。
二、基本用法
dict.fromkeys()
的基本使用方法如下:
keys = ['a', 'b', 'c']
d = dict.fromkeys(keys)
print(d) # {'a': None, 'b': None, 'c': None}
上面的代碼創建了一個新的字典d,其中包含了指定鍵序列keys中所有鍵的鍵值,默認為None。
除此之外,dict.fromkeys()
還可以指定鍵值,例如:
d = dict.fromkeys(keys, 0)
print(d) # {'a': 0, 'b': 0, 'c': 0}
上面的代碼中,指定了鍵值為0,因此創建的字典d中所有鍵的鍵值都是0。
三、添加自定義鍵值對
除了以上兩種方式,dict.fromkeys()
還支持一種更加高級的用法,即通過傳入一個可迭代對象,將其元素作為字典中的鍵,同時給每個鍵指定一個相同的值:
keys = ['a', 'b', 'c']
values = [1, 2, 3]
d = dict.fromkeys(keys, 0)
for k, v in zip(keys, values):
d[k] = v
print(d) # {'a': 1, 'b': 2, 'c': 3}
上面的代碼中,先創建了一個包含所有鍵的默認字典d,然後通過zip(keys, values)
對兩個列表進行了配對,再遍歷所有鍵值對,將對應的鍵值賦給字典d中的鍵,從而得到一個自定義的字典。
四、源碼分析
下面是dict.fromkeys()
的源碼實現:
@classmethod
def fromkeys(cls, iterable, value=None):
d = cls()
for key in iterable:
d[key] = value
return d
該方法是class method
類型,因此調用時可以使用類名,例如dict.fromkeys()
。
在該實現中,首先通過cls
創建了一個新的字典對象d,然後再遍歷輸入的鍵序列iterable,為每個鍵指定相同的值value,最終返回創建好的字典對象d。
五、總結
dict.fromkeys()
是一個常見且十分實用的字典函數,通過它可以快速創建一個包含指定鍵的新字典,同時可以指定鍵對應的默認值。在實際的Python開發中經常用到該函數,當處理字典時有時可以通過該函數來簡化代碼,提高開發效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/277966.html