簡體   English   中英

如何根據另一個列表對 python 中的列表進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM