[英]How to sort a list in python based on another list
我有一個 python 列表,其中用戶 ID data = [123,456,789]
,我想根據他們有多少點(由點 [userid] 計算)對這個列表進行排序。 我試過SortedData = sorted(data,key=points,reverse=True)
無濟於事。 有沒有辦法做到這一點?
謝謝。 埃文
您需要在lambda
中將其顯式化。 你可以 di points[x]
但points.get(x,0)
在這里可能更安全
data = [123,456,789]
points = {123:20, 456:10, 789:15}
sortedData = sorted(data, key=lambda x:points.get(x,0), reverse=True)
print(sortedData)
如果你可以讓None
作為默認值而不是數字,你可以減少到
sortedData = sorted(data, key=points.get, reverse=True) # use the method itself
key
還接受 function。
嘗試這個:
sorted_list = list(sorted(data, key= lambda userid: points[userid], reverse=True))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.