Python 中的自然字符串排序
自然排序是一种字母排序算法,可以正确处理字符串编号和版本。例如,即使在数学比较中“10”被认为大于“0”,它也应该将“elm0”排在“elm10”之前。
Python 的原生sorted() 函数默认不执行自然排序。要实现此行为,您可以利用 natsort 库,它实现了自然排序算法。
要使用 natsort,请通过以下方式安装:
pip install natsort
然后,根据您的要求,您可以使用排序功能或排序键:
排序函数:
from natsort import natsorted names = ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13'] natsorted(names) # ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
排序键:
from natsort import natsort_keygen names = ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13'] sort_key = natsort_keygen() names.sort(key=sort_key) # ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
或者,如果需要,您可以使用 natsort 的不区分大小写的排序算法:
from natsort import ns natsorted(names, alg=ns.IGNORECASE) # ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
natsort 库提供了用于执行自然排序的全面解决方案Python,处理各种输入格式并提供不区分大小写的排序选项以及与操作系统文件系统浏览器排序的兼容性。
以上是如何在 Python 中执行自然字符串排序?的详细内容。更多信息请关注PHP中文网其他相关文章!