首页 > 解决方案 > 如何对 csv 文件的 1 列进行排序并打印该行?

问题描述

我的 CSV 文件是这样的。

0.0063,0.0121,band -> mcr music
0.0061,0.0123,band -> mcr
0.0062,0.0122,band -> orchestra

如何对 csv 文件的第一列进行排序并打印每一行?所以,在这种情况下,最终输出应该是

0.0061,0.0123,band -> mcr
0.0062,0.0122,band -> orchestra
0.0063,0.0121,band -> mcr music

标签: pythoncsvparsing

解决方案


csv 基本上是一个 python 数组数组(矩阵)。也就是说,您的数据实际上如下所示:

csv = [
    [0.0063, 0.0121, 'band -> mcr music'],
    [0.0061, 0.0123, 'band -> mcr'],
    [0.0062, 0.0122, 'band -> orchestra']
]

然后,您可以将第 i列的排序视为对 tuples 列表进行排序。你会这样做:

csv = sorted(csv, key=lambda x: x[0])

或者,您可以使用数组内置sort方法进行就地排序:

csv.sort(key=lambda x:x[0])

现在要打印每一行,您可以遍历数组:

for line in csv:
    print(line)

要获得原始问题所要求的输出(以 分隔的值,):

print(','.join(line))

推荐阅读