python字典 通過值反查鍵(簡潔寫法)

2021-09-26 02:52:58 字數 1875 閱讀 4480

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

第一種是值唯一的情況直接構造列表,通過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)):

iflist

(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中的索引(如果list中存在多個重複的x,會返回首次出現的索引)

所以b.index(get_value)的意思是返回get_value在b列表中的索引

知識點四:list[x]——取list中第x個元素的值

a[b.index(get_value)]就將get_value的鍵取出了。

這裡是充分利用了列表的一些語法並糅合在一起,是一種簡潔的通過值取鍵寫法,僅供大家學習交流。

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

通過鍵查值比較容易,通過值反查鍵就稍微麻煩點,這裡給大家提供點思路。第一種是值唯一的情況直接構造列表,通過value的索引取對應的key。第二種是值不唯一的情況,需要通過for遍歷出所有的索引然後查出所有對應的key。如果你需要列印所有滿足查詢值所對應的key,選第二種 如果你只需要列印首次出現查詢...

用值獲取Python字典的鍵

python字典的操作中,用鍵值對的鍵獲取值的方法還是比較簡單的,例如 d print d 5 輸出結果為 c但由於值在字典中並不唯一,所以,查詢值對應的鍵則頗費周章,下面是乙個由值查鍵的函式,得出的對應輸入值的鍵的列表 def get keys by value the dict,the valu...

Python通過公共鍵對字典列表排序

users 通過公共列age排序,反序的話新增reversed true sort by age sorted users,key lambda x x age print sort by age 輸出 operator模組中的itemgetter itemgetter 通常要比lambda要快一些...