【问题标题】:CSV python sort() only outputting numbers from lowest to highest, not the other way roundCSV python sort() 仅输出从最低到最高的数字,而不是相反
【发布时间】:2015-04-05 04:26:36
【问题描述】:

我正在使用此代码:

name = input("Name:")
surname = input("Surname:")
number = input("Number:")

myfile=open("tryout_sorting.csv", "a")
myfile.write(name + "," + surname + "," + number + "\n")
myfile.close()

sample = open("tryout_sorting.csv", "r")
csv1 = csv.reader(sample,delimiter=",")
sort = sorted(csv1, key=lambda t: float( t[2] ))

for eachline in sort:
    print(eachline)

我正在尝试将姓名、姓氏和数字存储在 csv 文件中,然后从最高到最低输出他们的分数,但是:

sorted(csv1, key=lambda t: float( t[2] ))

从最低到最高。

我也试过了:

sorted(csv1,key=operator.itemgetter(2))

和:

sorted(csv1,key=lambda x:float(x[2]))

但它们都按从低到高的顺序输出数字。

【问题讨论】:

  • sorted 有另一个参数reverse。如果设置为True,则反向排序。

标签: python sorting csv


【解决方案1】:

所以这里是 sorted 的文档:https://docs.python.org/2/library/functions.html#sorted

它有一个名为“reverse”的标志,尝试将其设置为 True :)

【讨论】:

  • 您的答案是正确的,但我建议使用嵌入链接而不是粘贴长 URL,并使用原始代码添加示例代码。
  • 啊,是的,很抱歉给您带来不便,只是一个快速的镜头,但已经有另一个答案在做同样的事情,所以我想我会保持原样
【解决方案2】:

sorted() 使用reverse 参数从最高到最低排序。试试:

 sorted(csv1, key=float, reverse=True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多