按数字排序CSV文件

时间:2018-07-09 13:47:23

标签: python csv sorting

有什么方法可以将CSV文件降序排列。

我有一个CSV文件,其中包含不同玩家的所有得分。下面的代码从csv文件中提取前5个得分并将其输出到我的程序中。但是,我希望输出最高的5分,而不是前5分。无论如何,我可以做到这一点。

   def DisplayLeaderBoard():        
        count = 0
        with open ('StudentNames&Questions.csv') as scorelist:
            reader = csv.DictReader(scorelist)

            for row in reader:
                if count ==250:
                    break
                count = count+50
                scores_label = Label(canvas, text=(row['Names'], row['Score']), bg = 'gray25', fg='snow', font = font1)
                canvas_scores_label = canvas.create_window(350, 280+count, window = scores_label, width = 500, height = 40)

我在下面玩了这段代码,但是它主要用于数组。因此,如果有人知道如何首先将其放入数组,然后放入标签的for循环,请告诉我。

        array.sort(key=lambda x: x[0], reverse=True)

1 个答案:

答案 0 :(得分:2)

x[0]在这里不起作用,因为您已经传递了DictReader,因此x的参数必须是列键,而csv模块也不能不会将数值转换回整数,因此您可能会对整数字符串值进行字母数字排序。

总结起来,您需要根据“得分”列的数值进行排序:

for row in sorted(reader,key = lambda x : int(x['Score']),reverse=True):