[英]Get a key by value from a list in a dict
我需要從字典中獲取鍵,但是對應的值是一個列表,並且列表中只有一個值(一個元素)。 我已經找到
mydict = {'george':[(16,16), 17],'amber':19}
print(list(mydict.keys())[list(mydict.values()).index((16,16))])
但這不起作用,因為目標值只是列表中的一個元素,因此會產生值錯誤。
如何僅使用列表中的一個元素(僅使用(16,16)獲得密鑰?
如果您需要按鍵值,那么字典就很棒,反之則不然。 您總是可以遍歷字典項:
mydict = {'george':[(16,16), 17],'amber':19}
for key,val in mydict.items(): # decomposed tuple of key,value
if isinstance(val,list) and val[0] == (16,16): # check if value a list and 1st elem ok
print (key) # print key
Doku: 字典
您缺少的部分是如何在列表中查找給定值:它是in
運算符。
target = (16, 16)
mydict = {'george':[(16,16), 17],'amber':19}
[k for k, v in mydict.items() if type(v) == list and target in v]
這是編寫理解和過濾器的很長的路,但是它使步驟顯而易見。
為什么只使用列表的一部分? 在代碼中進行小的修改:
print(list(mydict.keys())[list(mydict.values()).index([(16, 16), 17])])
按預期方式打印喬治。 適用於python 3.6.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.