样本输入
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/