簡體   English   中英

如何在字典中使用鍵查找值

[英]how to find value using key in dictionary

您好我正在嘗試使用它們是2元素元組的鍵來查找字典中的值。

例如,任何基本字典都如下所示:

dict = {'dd':1, 'qq':2, 'rr':3}

所以,如果我想找到'dd'的值,我會這樣做:

>>>dict['dd']
   1

但是,如果我有一個字典誰的鍵是2元素元組怎么辦:

dict = {('dd', 'ee'):1, ('qq', 'bb'):2, ('rr', 'nn'):3}

然后我怎樣才能找到'dd'或'rr'的值

您沒有正確使用字典。 字典中的鍵應該是您想要查找它們的形式。 因此,除非你通過元組('dd', 'ee')查找值,否則你應該將這些鍵分開。

如果您被迫從該dict結構開始,那么您可以使用以下方法轉換為所需的dict:

d1 = {('dd', 'ee'):1, ('qq', 'bb'):2, ('rr', 'nn'):3}

# creates {'dd': 1, 'ee': 1, 'qq': 2, 'bb': 2, 'rr': 3, 'nn': 3}
d2 = {x:v for k, v in d1.items() for x in k}

您需要恢復線性搜索

>>> D = {('dd', 'ee'):1, ('qq', 'bb'):2, ('rr', 'nn'):3}
>>> next(D[k] for k in D if 'dd' in k)
1

如果您需要進行多次查找,則值得建立一個幫助字典,如@bcorso所建議的那樣

話說回來。 對於您要解決的任何問題, dict可能是錯誤的數據結構

使用列表理解:

>>> d={('dd', 'ee'):1, ('qq', 'bb'):2, ('rr', 'nn'):3, ('kk','rr'):4}
>>> [(t,d[t]) for t in d if 'rr' in t]
[(('kk', 'rr'), 4), (('rr', 'nn'), 3)]

暫無
暫無

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

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