[英]Dictionary comprehension whilst checking if key already exists?
我知道您可以使用以下方法檢查密鑰是否存在:
if key in mydict:
...
但是我希望在構建字典時以某種方式在字典理解中使用它。
例如:
mylist = [('a', 0.01), ('b', 0.02), ('c', 0.03), ('a', 0.04)]
mydict = {item[0]: item[1] for item in mylist if item[0] not in mydict else blah blah}
實現此目標的最佳方法是什么?
我還需要其他部分。
編輯:為澄清。 就我而言,我實際上需要具有給定item [0]值的所有項目的item [1]值總和。
Python dict是具有唯一鍵的無序結構。 由於您需要首先遇到的鍵的值-以相反的順序迭代輸入列表:
mylist = [('a', 0.01), ('b', 0.02), ('c', 0.03), ('a', 0.04)]
mydict = {t[0]:t[1] for t in mylist[::-1]}
print(mydict)
輸出:
{'a': 0.01, 'c': 0.03, 'b': 0.02}
通過字典理解:
mylist = [('a', 0.01), ('b', 0.02), ('c', 0.03), ('a', 0.04)]
mydict = {key:value for key, value in mylist[::-1]}
print(mydict)
輸出:
{'a': 0.01, 'c': 0.03, 'b': 0.02}
沒有字典理解:
mydict = {}
for key, value in mylist:
if key not in mydict:
mydict[key] = value
else:
# You asked for the else part. Do whatever here.
print(d)
輸出:
{'a': 0.01, 'c': 0.03, 'b': 0.02}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.