希望按列对一组 .csv 数值进行排序。可选地,列的数量可以变化。例如使用Python:
print(sorted(['9,11', '70,10', '10,8,1','10,70']))
产生
['10,70', '10,8,1', '70,10', '9,11']
而期望的结果是
['9,11', '10,8,1', '10,70', '70,10']
首先,按第一列排序,然后按第二列排序,依此类推。
显然这是可以做到的,但是可以优雅地做到这一点吗?
最佳答案
通过使用 sorted
的 key
参数可以更优雅地完成此操作:
data = [
'9,11',
'70,10',
'10,8,1',
'10,70'
]
print sorted(data, key=lambda s: map(int, s.split(',')))
结果:
['9,11', '10,8,1', '10,70', '70,10']
通过上面的代码,我们将列表中的每个字符串转换为整数值列表,并使用该整数值列表作为排序键
关于python - 对逗号分隔的数字字符串进行数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42471977/