簡體   English   中英

字典理解,同時檢查鍵是否已存在?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM