栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python是否有用于字符串自然排序的内置函数?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python是否有用于字符串自然排序的内置函数?

在PyPI上有一个名为natsort的第三方库。对于你的情况,可以执行以下任一操作:

>>> from natsort import natsorted, ns>>> x = ['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']>>> natsorted(x, key=lambda y: y.lower())['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']>>> natsorted(x, alg=ns.IGNORECASE)  # or alg=ns.IC['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']

你应该注意,它natsort使用通用算法,因此它几乎可以处理你向其抛出的任何输入。如果你想了解为什么选择一个库而不是滚动自己的函数的更多详细信息,请查阅natsort文档的“ 如何工作”页面,尤其是“ 到处都是特殊情况”!部分。

如果需要排序键而不是排序功能,请使用以下公式之一。

>>> from natsort import natsort_keygen, ns>>> l1 = ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']>>> l2 = l1[:]>>> natsort_key1 = natsort_keygen(key=lambda y: y.lower())>>> l1.sort(key=natsort_key1)>>> l1['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']>>> natsort_key2 = natsort_keygen(alg=ns.IGNORECASE)>>> l2.sort(key=natsort_key2)>>> l2['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/370012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号