【发布时间】:2021-12-27 20:06:53
【问题描述】:
所以我正在尝试按 csv 文件中的值一堆数据进行排序,但输出错误。所以有什么意见吗? 注意:我应该在没有 pandas 的情况下解决它。谢谢
import csv
import operator
with open('final.csv', 'r') as csvFile:
reader = csv.reader(csvFile)
for row in reader:
sortedlist = sorted(reader, key=operator.itemgetter(1), reverse=True)
for eachline in sortedlist:
print(eachline)
csvFile.close()
和输出:
['sara', '9.75']
['soheila', '7.833333333333333']
['hamid', '6.066666666666666']
['ali', '5.0']
['sarvin', '11.375']
['sina', '11.285714285714286']
【问题讨论】:
-
你的代码结构很好。您希望对第二列值进行排序,就好像它们是浮点数而不是文本一样。所以这至少是解决方案的一部分。接下来,您是否希望这些值实际上是(转换为)浮点数,还是保留为字符串并仅被排序器解释为为浮点数?
-
这个问题 (stackoverflow.com/a/26725820/246801) 是关于整数,而不是浮点数(就像你有的那样),但它是同一个问题,也是我认为你想要的解决方案。
-
@ZachYoung 是的,最终输出应该是 string 。我通过您的回答意识到分拣机应该处理 floats 。你能给我解释一下吗?谢谢
-
您查看我建议的链接了吗?查看已接受解决方案的第一行
sorted(XWordDict...以及它们如何使用float()和itemgetter()作为key参数的一部分。试一试,如果不起作用,请更新您的代码,我们可以看看。