簡體   English   中英

如何從按條件過濾的字典中獲取值

[英]how to get values from dictionary filtered by condition

今天是個好日子!

請幫我解決以下問題。

我有一些字典

d = {'key1': (0, 1), 'key2': (0, 0), 'key3': (4, 7), 'key4': (0, 0), 'key5': (9, 12), 'key2': (9, 12)}

我正在嘗試提取具有 (0, 0) 值的鍵/值解析

newDict = dict()
for (k, v) in d.values():
    if v == 0:
        newDict[k] = v
newDict

但它不起作用......

您需要比較元組中的兩個元素,所以v == (0, 0) 您可以簡化代碼以使用字典理解:

d = {'key1': (0, 1), 'key2': (0, 0), 'key3': (4, 7), 'key4': (0, 0), 'key5': (9, 12), 'key6': (9, 12)}

newDict = { k : v for k, v in d.items() if v == (0, 0) }
print(newDict)

Output:

{'key2': (0, 0), 'key4': (0, 0)}

注意我已經通過將第二個key2更改為key6來更正字典中的重復鍵

使用dict.fromkeys()

res = dict.fromkeys((k for k, v in d.items() if v == (0, 0)), (0, 0))
print(res)

Output:

{'key2': (0, 0), 'key4': (0, 0)}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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