我有一本這樣的字典
x={6:{"Apple","Banana","Tomato"},9:{"Cake"},11:{"Pineapple","Apple"}}
我想添加一個丟失的數字作為鍵和空字串作為這樣的值
x={1:"",2:"",3:"",4:"",5:"",6:{"Apple","Banana","Tomato"},7:"",8:"",9:{"Cake"},10:"",11:{"Pineapple","Apple"}}
我該怎么辦?提前謝謝
uj5u.com熱心網友回復:
用理解構建一個新的字典:
>>> x={6:{"Apple","Banana","Tomato"},9:{"Cake"},11:{"Pineapple","Apple"}}
>>> x = {k: x.get(k, "") for k in range(1, max(x) 1)}
>>> x
{1: '', 2: '', 3: '', 4: '', 5: '', 6: {'Banana', 'Tomato', 'Apple'}, 7: '', 8: '', 9: {'Cake'}, 10: '', 11: {'Apple', 'Pineapple'}}
根據您的用例,您可能還會發現它defaultdict很有用,例如:
>>> from collections import defaultdict
>>> x = defaultdict(str)
>>> x.update({6:{"Apple","Banana","Tomato"},9:{"Cake"},11:{"Pineapple","Apple"}})
>>> x[6]
{'Banana', 'Tomato', 'Apple'}
>>> x[1]
''
這個想法defaultdict是,str()如果沒有設定其他值,您嘗試訪問的任何鍵都將提供默認值(在這種情況下)——沒有必要提前填寫“缺失”值,因為字典只會根據需要提供它們。如果您需要遍歷整個字典并包含這些空值,那么這將不起作用。
uj5u.com熱心網友回復:
您可以使用dict.fromkeys然后更新該字典來構建您的字典x。
out = {**dict.fromkeys(range(1, max(x) 1), ""), **x}
輸出:
{1: '', 2: '', 3: '', 4: '', 5: '', 6: {'Tomato', 'Apple', 'Banana'},
7: '', 8: '', 9: {'Cake'}, 10: '', 11: {'Apple', 'Pineapple'}}
dict.fromkeys(iterable, value=None) 檔案字串:
創建一個新字典,鍵來自
iterable,值設定為value。
dict.fromkeys(range(1, max(x) 1), "")
# {1: '', 2: '', 3: '', 4: '', 5: '', 6: '', 7: '', 8: '', 9: '', 10: '', 11: ''}
我們可以使用{**x, **y}. 退房:在python中合并兩個字典
uj5u.com熱心網友回復:
回圈從 0 到 11 的數字。如果在字典中找不到某個數字,請添加它。
for n in range(12):
if n not in x:
x[n] = ""
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/373921.html
上一篇:只回傳出現次數最多的元素
