通過鍵查值比較容易,通過值反查鍵就稍微麻煩點,這裡給大家提供點思路。
第一種是值唯一的情況直接構造列表,通過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所以a是將字典mydisc所有key取出並用list()方法構建乙個「鍵列表」,a=[『key1』, 『key2』, 『key3』]知識點二:list(list)——將list轉化為列表,列表的好處就是有序,所以能通過list[index]取元素
同理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要快一些...