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

Uni*_*LSD 0 python sorting

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

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])
Run Code Online (Sandbox Code Playgroud)

但这是输出:

[['AnotherUser', '3'], ['James', '15'], ['James', '13'], ['User2', '12'], ['James', '0']]
Run Code Online (Sandbox Code Playgroud)

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

[['James', '15'], ['James', '13'], ['User2', '12'], ['AnotherUser', '3'], ['James', '0']]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?提前致谢 :)

U10*_*ard 5

最后一行应该是:

scores.sort(reverse=True, key=lambda x: int(x[1]))
Run Code Online (Sandbox Code Playgroud)

代替:

scores.sort(reverse=True, key=lambda x: x[1])
Run Code Online (Sandbox Code Playgroud)

因为字符串比较非常关闭,你知道:-)

所以比较整数.