简介
Python中实现自然排序算法的函数是natsort(),可以在代码中添加如下内容导入。
from natsort import natsorted
直接使用natsort()函数可以实现自然排序,但是顺序还是和我们电脑上的Windows默认排序不一样。
Windows默认排序如下图
如果直接使用natsort()函数,顺序是东、北、南、西。
要实现Windows默认排序,需要先将中文字符串转换成拼音,再使用natsort()函数。
from pypinyin import lazy_pinyin
Two = natsorted(one, key=lambda x: ''.join(lazy_pinyin(x)))
如果不使用类似PyCharm这样的工具,不能自动导入,使用如下命令安装。
pip install natsort pypinyin
测试代码如下
from natsort import natsorted
from pypinyin import lazy_pinyin
inTest = ['1-东','1-南','1-西','1-北']
outOne = natsorted(inTest)
outTwo = natsorted(inTest, key=lambda x: ''.join(lazy_pinyin(x)))
print(outOne)
print(outTwo)
输出结果: