【发布时间】:2020-08-12 14:01:08
【问题描述】:
我正在尝试为游戏创建一个排行榜,在玩完游戏后,python 脚本会访问一个 CSV 文件(未排序)并打印出得分最高的前 5 名人员。 Python 似乎对一位数的数字做得很好,但我无法让它与两位数一起工作。代码如下:
import csv
import operator
sample = open('csv_sample2.txt', 'r')
csv1 = csv.reader(sample,delimiter=',')
sort = sorted(sample, key=operator.itemgetter(1))
for eachline in sort:
print(eachline)
这是输出: (我现在只是使用占位符名称)
['Matt Damon', ' 12']
['Robin Williams', ' 14']
['Billy Crystal', ' 15']
['Minnie Driver', ' 17']
['Peter Sellers', ' 6']
['Robert De Niro', ' 8']
['Stanley Kubrick', ' 9']
这是原始排行榜文件:
Matt Damon, 12
Robert De Niro, 8
Billy Crystal, 15
Peter Sellers, 6
Stanley Kubrick, 9
Robin Williams, 14
Minnie Driver, 17
我怎样才能正确排序数字?
【问题讨论】:
-
为什么要对文件进行排序,还要将其读取为CSV?,使用
lambda x : int(x[1])之类的关键函数 -
您必须将字符串转换为整数值才能获得合适的排序。
-
csv1已定义,但在撰写本文时未使用。故意的?