python字典通過值反查鍵的實現 簡潔寫法

2022-10-04 07:51:07 字數 1520 閱讀 9724

通過鍵查值比較容易,通過值反查鍵就稍微麻煩點,這裡給大家提供點思路。 

第一種是值唯一的情況直接構造列表,通過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 而選擇使用列表還是集合取決於實際的需求。如果需要保持插入元素的順序,建議選擇列表 如果需求需要去掉重複的...