1. 程式人生 > >Python筆記: 通過字典的值得到鍵

Python筆記: 通過字典的值得到鍵

方法一:

mydict={'one':1, 'two':2, 'ntwo':2}

for key, val in mydict.items():
    if val == 2:
        print(key)

這種方法放第一位是因為,程式碼好讀懂,而且適用於一值多鍵,

而下面的方法二要改進才能實現著效果就會麻煩許多,適用於一值一鍵。

如果出現這種情況: 

dict={'one': [1, 11]}
那麼得到字典的 值 是一個 列表(list),這時候要先判斷 值 的型別是不是一個 list型別:
if isinstance(dict['one'], list):  # if isinstance(dict[key], list) is true, 
    print('list: ', dict['one'])   # using a for loop checks the each value of the list 
                                   # if find the value, print the key




方法二:
print(
    list(mydict.keys())[list(mydict.values()).index(2)]
) 

把字典中的鍵按循序存入列表:list(mydict.keys())

再把字典中的值全部存入另一個列表裡:list(mydict.values())

兩個列表的位置是相對應的:

['one', 'two', 'ntwo']  # list(mydict.keys())
[1, 2, 2]               # list(mydict.values())

所以: list(mydict.values()).index(2)  # 得到的是 1 而不是 2

但是隻能找到 two 不能找到 ntwo, 因為index(2)只返回第一個2的index。