python - 对逗号分隔的数字字符串进行数字排序

标签 python sorting

希望按列对一组 .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']

首先,按第一列排序,然后按第二列排序,依此类推。

显然这是可以做到的,但是可以优雅地做到这一点吗?

最佳答案

通过使用 sortedkey 参数可以更优雅地完成此操作:

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/

相关文章:

python - 无法运行 Popen.communicate() 两次。 (Python 子进程模块)

python - 使用 mod_python 时 python 日志记录模块的不同行为

PHP 与 Python

C++ 对字符指针数组进行排序

java - 将数组排序为子数组

python - 多处理和全局管理器

python - 如何用owlready2动态创建类和个体?

javascript - Mergesort - 自下而上比自上而下更快吗?

javascript - 如何对 greasemonkey 中的现有表格进行排序?

python - 在 Python 中对多维字典进行排序