[英]Sort a list based on dictionary values in python?
假設我有一本字典,然后我有一個包含字典鍵的列表。 有沒有辦法根據字典值對列表進行排序?
我一直在嘗試這個:
trial_dict = {'*':4, '-':2, '+':3, '/':5}
trial_list = ['-','-','+','/','+','-','*']
我去使用:
sorted(trial_list, key=trial_dict.values())
並得到:
TypeError: 'list' object is not callable
然后我去創建一個可以用trial_dict.get()
調用的函數:
def sort_help(x):
if isinstance(x, dict):
for i in x:
return x[i]
sorted(trial_list, key=trial_dict.get(sort_help(trial_dict)))
我不認為sort_help
函數對排序有任何影響。 我不確定使用trial_dict.get()
是否是解決此問題的正確方法。
是的dict.get是正確的(或者至少是最簡單的)方法:
sorted(trial_list, key=trial_dict.get)
正如 Mark Amery 所評論的,等效的顯式 lambda:
sorted(trial_list, key=lambda x: trial_dict[x])
可能會更好,至少有兩個原因:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.