通過鍵查值比較容易,通過值反查鍵就稍微麻煩點,這裡給大家提供點思路。
第一種是值唯一的情況直接構造列表,通過value的索引取對應的key。
第二種是值不唯一的情況,需要通過for遍歷出所有的索引然後查出所有對應的key。
如果你需要列印所有滿足查詢值所對應的key,選第二種;
如果你只需要列印首次出現查詢值所對應的key,選第一種。
**如下:
#假如值唯一
mydisc =
get_value = input('請輸入要查值:')
if get_value in mydisc.values():
print(list(mydisc.keys())[list(mydisc.values()).index(get_value)])
else:
print('你要查詢的值'+get_value+'不存在')
# 假如值不唯一
mydisc =
get_value = input('請輸入要查值:')
if get_value in mydisc.values():
for a in range(0,len(mydisc)):
if list(mydisc.values())[a]==get_value:
print(list(mydisc.keys())[a])
else:
print('你要查詢的值'+get_value+'不存在')
有些同學對這段不理解
list(mydisc.keys())[list(mydisc.values()).index(get_value)]
我這裡給大家解釋下,為方便理解,我們拆解為
a[b.index(get_value)]
其中:a=list(mydisc.keys())
b=list(mydisc.values())
知識點一:mydisc.keys()——取出字典程式設計客棧mydisc的所有key
知識點二:list(list)——將list轉化為列表,列表的好處就是有序,所以能通過list[index]取元素
所以a是將字典mydisc所有key取出並用list()方法構建乙個「鍵列表」,a=[『key1', 『key2', 『key3']
同理b是將字典mydisc所有value取出並用list()方法構建乙個「值列表」,b=[123,234,345]
這個時候我們只需要知道get_value在b中的索引,然後找到a中對應索引的元素即可。
知識點三:list.index(x)——返回元素x在list中的索引(如果lisrkclct中存在多個重複的x,會返回首次出現的索引)
所以b.index(get_value)的意思是返回get_value在b列表中的索引
知識點四:list[x]——取list中第x個元素的值
a[b.index(get_value)]就將get_value的鍵取出了。
這裡是充分利用了列表的一些語法並糅合在一起,是一種簡潔的通過值取鍵寫法,僅供大家學習交www.cppcns.com流。
python字典 通過值反查鍵(簡潔寫法)
通過鍵查值比較容易,通過值反查鍵就稍微麻煩點,這裡給大家提供點思路。第一種是值唯一的情況直接構造列表,通過value的索引取對應的key。第二種是值不唯一的情況,需要通過for遍歷出所有的索引然後查出所有對應的key。如果你需要列印所有滿足查詢值所對應的key,選第二種 如果你只需要列印首次出現查詢...
用值獲取Python字典的鍵
python字典的操作中,用鍵值對的鍵獲取值的方法還是比較簡單的,例如 d print d 5 輸出結果為 c但由於值在字典中並不唯一,所以,查詢值對應的鍵則頗費周章,下面是乙個由值查鍵的函式,得出的對應輸入值的鍵的列表 def get keys by value the dict,the valu...
Python 字典中的鍵對映多個值
如何實現乙個字典 multidict 的鍵對應多個值?字典的定義就是乙個鍵對應乙個單值的對映。如果想要乙個鍵對映多個值,那麼需要將多個值放到其他容器中,例如列表和集合當中,示例 如下 a b y 而選擇使用列表還是集合取決於實際的需求。如果需要保持插入元素的順序,建議選擇列表 如果需求需要去掉重複的...