我这样做是为了对高分的列表进行排序:
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)
我究竟做错了什么?提前致谢 :)
最后一行应该是:
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)
因为字符串比较非常关闭,你知道:-)
所以比较整数.
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |