這個問題在這里已經有了答案:
我得到的輸出沒問題,數字只需要按降序排列。我搜索了一個解決方案,但找不到任何東西,感覺很容易解決,但我不知道該怎么做。
uj5u.com熱心網友回復:
最好的方法是分離您的資料。你有一個字串中的名稱和金錢。我們先把它們分開:
data = ["Mohammad 10", "Yucel 15", "Yusuf 12"]
data_sep = [[d.split()[0], float(d.split()[1])] for d in data]
print(data_sep) # [['Mohammad', 10.0], ['Yucel', 15.0], ['Yusuf', 12.0]]
現在讓我們按第二列對它們進行排序(見這個):
print(sorted(data_sep, key=lambda l: l[1], reverse=True)) # Toggle reverse to change descending/ascending
uj5u.com熱心網友回復:
您可以使用以下函式對資料進行排序,
def quicksort(data):
left = []
right = []
ref = [data[int(len(data)/2)]]
for line in data:
if line == ref[0]:
continue
if line["money"] < ref[0]["money"]:
right.append(line)
else:
left.append(line)
if left != []:
left = quicksort(left)
if right != []:
right = quicksort(right)
sorted_data = left ref right
return sorted_data
假設您的資料采用這種形式
data = [{"name":"himanshu", "money":25}, {"name":"aniket", "money":34}, {"name":"ani", "money":3}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/339862.html
