[英]Sorting list with string and integers
我正在使用CSV對球員的最高疼痛進行排序。 我在這樣的列表中有名稱和分數:
['4', 'Score One']
['8', 'Score Two']
['6', 'Score Three']
這是通過循環遍歷文件,找到最大分數並使用該分數和播放器名稱創建新列表而創建的。
for row in reader:
highscores = ([row[-1], row[0]])
當我print (sorted(highscores))
,相同的列表會返回給我。 我希望它按原樣排序:
['8', 'Score Two']
['6', 'Score Three']
['4', 'Score One']
如果有人可以向我解釋為什么sorted
不起作用以及我可以做些什么來解決它,那就太好了。
您的問題是highscores
每個元素實際上是一個字符串列表,而不是數字。 這些行沒有有用的排序。
使用key
參數進行排序,以從每一行獲取整數分數:
>>> highscores = [['4', 'Score One'],
['8', 'Score Two'],
['6', 'Score Three']]
>>> sorted(highscores, key=lambda x: int(x[0]))
[['4', 'Score One'], ['6', 'Score Three'], ['8', 'Score Two']]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.