首页 > 解决方案 > 使用两位数字订购 CSV

问题描述

我正在尝试为游戏创建一个排行榜,在玩完游戏后,python 脚本会访问一个 CSV 文件(未排序)并打印出得分最高的前 5 人。Python 似乎可以很好地处理一位数字,但我无法让它处理 2 位数字。这是代码:

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

我如何才能正确订购数字?

标签: pythoncsvsorting

解决方案


 ...: sample = [['Matt Damon', ' 12'],
    ...: ['Robin Williams', ' 14'],
    ...: ['Billy Crystal', ' 15'],
    ...: ['Minnie Driver', ' 17'],
    ...: ['Peter Sellers', ' 6'],
    ...: ['Robert De Niro', ' 8'],
    ...: ['Stanley Kubrick', ' 9']]
    ...:
    ...: def get_int_item(o):
    ...:     return  int(o[1])
    ...:
    ...:
    ...: sort = sorted(sample, key=get_int_item)
    ...:
    ...: for eachline in sort:
    ...:     print(eachline)
    ...:
['Peter Sellers', ' 6']
['Robert De Niro', ' 8']
['Stanley Kubrick', ' 9']
['Matt Damon', ' 12']
['Robin Williams', ' 14']
['Billy Crystal', ' 15']
['Minnie Driver', ' 17']

推荐阅读