簡體   English   中英

帶字符串和整數的排序列表

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

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