我这样做是为了对高分列表进行排序:
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])
因为字符串比较非常糟糕,你知道:-(
所以比较整数。