对列表进行排序就是给出错误的答案



我这样做是为了对高分列表进行排序:

with open("scores.csv", "r") as x:
    reader = csv.DictReader(x)
    scores = []  # Makes an empty listto store the scores
    for row in reader:
        scores.append([row["Name"], row["Score"]])
    # Sorts the list by score
    scores.sort(reverse=True, key=lambda x: x[1])

但这是输出:

[['AnotherUser', '3'], ['James', '15'], ['James', '13'], ['User2', '12'], ['James', '0']]

显然,结果应该是这样的:

[['James', '15'], ['James', '13'], ['User2', '12'], ['AnotherUser', '3'], ['James', '0']]

我做错了什么?提前感谢:(

最后一行应该是:

scores.sort(reverse=True, key=lambda x: int(x[1]))

代替:

scores.sort(reverse=True, key=lambda x: x[1])

因为字符串比较非常糟糕,你知道:-(

所以比较整数。

相关内容

最新更新