![](/img/trans.png)
[英]How to find value in dictionary using key and then search the value within the tuple(value of dictionary)?
[英]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.