按字典顺序排序结果?

use*_*558 12 python sorting

我试图以人类可读的方式显示一些结果.出于这个问题的目的,其中一些是数字,一些是字母,一些是两者的组合.

我试图找出如何让它们像这样排序:

input = ['1', '10', '2', '0', '3', 'Hello', '100', 'Allowance']
sorted_input = sorted(input)
print(sorted_input)
Run Code Online (Sandbox Code Playgroud)

期望的结果:

['0', '1', '2', '3', '10', '100', 'Allowance', 'Hello']
Run Code Online (Sandbox Code Playgroud)

实际结果:

['0', '1', '10', '100', '2', '3', 'Allowance', 'Hello']
Run Code Online (Sandbox Code Playgroud)

我无法想出如何做到这一点.

Min*_*gyu 13

1 - 安装natsort模块

pip install natsort
Run Code Online (Sandbox Code Playgroud)

2 - 导入natsorted

>>> input = ['1', '10', '2', '0', '3', 'Hello', '100', 'Allowance']

>>> from natsort import natsorted
>>> natsorted(input)
['0', '1', '2', '3', '10', '100', 'Allowance', 'Hello']
Run Code Online (Sandbox Code Playgroud)

资料来源:https://pypi.python.org/pypi/natsort

  • 我很高兴看到`natsort`对除了我以外的人有用.谢谢你的推荐! (3认同)