样本输入

20, 71146620
100, 26867616
10, 02513583
10, 52811698
100, 23859051

我从文件中将其作为命令行参数读入到列表中
lin = [i.strip() for i in open(sys.argv[1]).readlines()]

该列表看起来像 ['20, 71146620', '100, 26867616', '10, 02513583', '10, 52811698', '100, 23859051']
我希望找到最 Pythonic 的方式来对这个列表进行排序,首先是第一个值,然后是第二个值,这样它看起来像:
['10, 02513583', '10, 52811698', '20, 71146620', '100, 23859051', '100, 26867616', ]
我目前正在尝试将其转换为键值对列表,但我不确定这是正确的方向。

最佳答案

最简单的方法是将这些对解析为列表,然后对它们进行排序:

lin = [i.strip().split(', ') for i in open(sys.argv[1]).readlines()]
lin = sorted(lin)

如果您想按数字排序,只需转换为数字:
lin = [map(int, i.strip().split(', ')) for i in open(sys.argv[1]).readlines()]
lin = sorted(lin)

关于对逗号分隔的数字列表进行排序的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19353638/

10-13 09:51