【问题标题】:how to sort a CSV using basic Python modules only如何仅使用基本 Python 模块对 CSV 进行排序
【发布时间】:2020-03-27 22:44:54
【问题描述】:

所以,我和一个朋友正在开发一个用 python 构建的游戏,我们正在开发一个排行榜系统,但是在调用 CSV 文件时无法自行排序。 我们正在使用一个专用的 python 文件来尝试打开外部文件,但我们无法弄清楚如何使其排序。

import csv
import operator
with open('leaderboard.csv', 'r') as f:
     csv1 = csv.reader(f, delimiter=',', quotechar='"')
     for row in csv1:
        if row:
            some=row[1]
            print(row)

我们的代码看起来像这样。 有什么帮助吗? 谢谢。

【问题讨论】:

    标签: python-3.x csv sorting leaderboard


    【解决方案1】:

    使用内置的sorted 函数或list.sort 方法在Python 中对事物进行排序。 csv.reader(source, ...) 返回一个字符串列表的迭代器,可以传递给sorted

    import csv
    data = ('c cee', 'a aaa', 'z zee')
    for row in sorted(csv.reader(data)):
        print(row)
    

    打印

    ['a aaa']
    ['c cee']
    ['z zee']
    

    将键函数传递给 sorted 以对不同字段上的列表进行排序。请参阅sorted 文档。

    【讨论】:

    • 我在这里看到的唯一问题是我们需要一个代码来对 CSV 中的数字进行排序(排行榜的第 2 行),而这会按字母顺序排列名称(第 1 行)
    • 您的评论给人的印象是您的表格是从正常结构转置的,有 2 行 - 第一行是名称,第二行是数字。数字是上面名字的分数吗?你想按分数对名字排序吗?
    • 是的。该表的第一行有名称,第二行有分数,我们希望它对分数最高的名称进行排序。
    猜你喜欢
    • 1970-01-01
    • 2019-04-06
    • 2012-07-11
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    相关资源
    最近更新 更多