在Python中,要創建一個簡單的鍵值對字典,我們通常使用大括號{}來初始化一個字典,然後使用冒號:分隔鍵和值。但是,當我們需要創建一組相同鍵名但不同鍵值(比如初始化一個所有值都為0的字典)時,這種方法就顯得非常低效,需要寫很多行代碼來一個一個地初始化字典項。
幸運的是,Python提供了一個更快速且便利的方法來創建Key-Value字典,即使用dict的fromkeys()方法。使用fromkeys(),我們可以使用一個序列作為鍵,將其所有的值初始化為一個默認值,從而快速創建一個Key-Value字典。
一、基礎用法
在最簡單的場景下,使用fromkeys()方法創建一個所有鍵都被初始化為同一個值的字典非常簡單。我們只需要使用fromkeys(序列,默認值)方法即可:
keys = ['key1', 'key2', 'key3'] default_value = 0 d = dict.fromkeys(keys, default_value) print(d) # 輸出 {'key1': 0, 'key2': 0, 'key3': 0}
從上面的代碼中我們可以看出,我們使用一個列表keys作為fromkeys()的第一個參數,所有的鍵都被初始化為默認值0。這樣,我們就快速創建了一個Key-Value字典。
二、設置不同的默認值
有時候,我們需要某些鍵使用不同的默認值來初始化字典。在這種情況下,我們可以使用一個字典來指定每個鍵的默認值,這個字典的鍵就是原先用作fromkeys()方法參數的序列。
keys = ['key1', 'key2', 'key3'] default_values = {'key1': 0, 'key2': 1, 'key3': 2} d = dict.fromkeys(keys, default_values) print(d) # 輸出 {'key1': {'key1': 0, 'key2': 1, 'key3': 2}, 'key2': {'key1': 0, 'key2': 1, 'key3': 2}, 'key3': {'key1': 0, 'key2': 1, 'key3': 2}}
從上面的代碼中可以看出,我們使用一個字典default_values來指定每個鍵的默認值,這個字典的鍵就是原先用作fromkeys()方法參數的序列。這樣,我們就可以創建一個各鍵都使用不同的默認值的字典。
三、指定不同的默認值生成器
除了使用一個字典來指定不同的默認值外,我們還可以使用一個函數作為默認值生成器,從而按照一定的規則為每個鍵生成不同的默認值。
keys = ['key1', 'key2', 'key3'] default_values = lambda x: len(x) d = dict.fromkeys(keys, default_values) print(d) # 輸出 {'key1': 4, 'key2': 4, 'key3': 4}
從上面的代碼中可以看出,我們使用一個函數default_values來作為默認值生成器,這個函數的參數就是序列中的每個鍵。這樣,我們就可以按照自己的規則為每個鍵生成默認值,從而快速創建一個Key-Value字典。
四、使用生成器表達式
除了以上的方法外,我們還可以使用生成器表達式來代替序列,從而實現更加高效的Key-Value字典創建。
keys = ['key1', 'key2', 'key3'] default_value = 0 d = {k: default_value for k in keys} print(d) # 輸出 {'key1': 0, 'key2': 0, 'key3': 0}
從上面的代碼中可以看出,我們使用了一個生成器表達式{k: default_value for k in keys}來生成Key-Value字典,相比於fromkeys()方法,這種方法更加高效。
五、結論
在本文中,我們通過以上多種方式闡述了如何使用Python的dict from keys方法快速創建Key-Value字典。無論是在初始化所有鍵都為同一個值的字典,還是在一些特殊場景下指定不同的默認值,我們都可以使用fromkeys()方法來簡化我們的代碼,提高工作效率。
原創文章,作者:IMZZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/133103.html