有個正在學習的Python的學生,目前進度來到了字典(dict)。當她進行課後的題目練習時,其中有一題要她找出字典中最貴的東西,題目中的字典為:
fruits = {“西瓜”:34,”木瓜”:63,”文旦”:81,”蘋果”:102,”鳳梨”:60,”橘子”:73}
她第一時間想到如果能直接由value(值)查詢key(鍵)就能快速完成這題,但字典只能由key查詢value,於是跑來問我有沒有方法可以反過來由value查詢key。
我回答沒有。
於是她又問有沒有可以將字典裡的key與value對調的方法,因為這樣也能達到她的目的。
我跟她說這個方法我就會了,而且對調的方法不難,只需要一行程式碼就能搞定。
題外話,如果是我的話並不會選擇這種方法來解題,因為Python字典不能存在相同的key,萬一遇到好幾個value是一樣的,對調後只會剩下一個。不過畢竟是學生自己動腦想到的方法,除了提醒她注意上述這點外,還是教她key與value對調的方法當作嘉許。
1. 假設原字典名稱是dic,對調後的字典名稱是new_dic,將字典裡的key與value對調的程式碼則如下方所示;對,就這麼一行,別懷疑。
new_dic = {v : k for k, v in dic.items()}
2. 這裡使用上述的那個練習題來示範一下。如果想對調「fruits」字典中的key與value,新字典取名為new_fruits,那麼程式碼就是:
new_fruits = {v : k for k, v in fruits.items()}
3. 實際執行程式確認一下是否真的對調完成。
4. 題目要求找出最貴的水果,可以先用 new_fruits.keys() 將new_fruits的key都拿出來,再用 list() 將key放進List裡(這邊將List命名為key2list)。
5. 變成List就方便多了,只要用 max(key2list) 就能找出最大的數字,再將 max(key2list) 擺進 new_fruits[] 裡就能查詢出對應的水果啦。
您好,請問您網站接受聯盟行銷合作嗎?
我不反對,但坦白說我也沒太多時間弄這個。