首页 > 解决方案 > 如何基于另一列和冒泡排序对 .csv 列求和(无库(pandas、sort() 等))

问题描述

一个示例 .csv 文件将是(标题:“名称、提供者、剩余月份”)

John,O2,12
Adam,EE,11
Arnold,O2,14
Sarah,Voxi,9
Mitch,EE,4
Kirstie,GiffGaff,10
Elise,Voxi,3
Eleanor,GiffGaff,7

您如何找到每个提供商的剩余总月数?然后按升序列出提供者的总月数?理想情况下使用冒泡排序?

编辑:这没有任何库,没有 sort()、pandas、lambdas 等。

标签: pythoncsvsorting

解决方案


只需将您的数据逐行提取到某个结构中,然后拆分,

然后您可以使用参数对结构进行排序keysort()

lines = []
with open("source.csv") as fh:
    for line in fh:  # file-likes are iterable by-lines
        lines.append(line.split(","))

lines.sort(key=lambda x: x[2])  # sort on the 3rd field, (index 2)

如果您只想要总和,只需继续添加第三个字段,无需对其进行排序


推荐阅读