有什么方法可以将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)
答案 0 :(得分:2)
x[0]
在这里不起作用,因为您已经传递了DictReader
,因此x
的参数必须是列键,而csv
模块也不能不会将数值转换回整数,因此您可能会对整数字符串值进行字母数字排序。
总结起来,您需要根据“得分”列的数值进行排序:
for row in sorted(reader,key = lambda x : int(x['Score']),reverse=True):