python中简单而灵活的自然排序。

natsort的Python项目详细描述


快速描述

当您尝试对包含数字的字符串列表进行排序时,通常的python 排序算法按字典顺序排序,因此您可能无法得到 期待:

>>> a=['2 ft 7 in','1 ft 5 in','10 ft 2 in','2 ft 11 in','7 ft 6 in']>>> sorted(a)['1 ft 5 in', '10 ft 2 in', '2 ft 11 in', '2 ft 7 in', '7 ft 6 in']

注意,它有顺序('1','10','2')-这是因为列表是 按字典顺序排序 字母(即‘B’、‘BA’、‘C’)。

natsort 提供了一个帮助排序列表的函数 "自然"("自然"相当于L-定义,但通常意味着 基于意义而不是计算机代码点的排序)。 使用 natsorted 很简单:

>>> fromnatsortimportnatsorted>>> a=['2 ft 7 in','1 ft 5 in','10 ft 2 in','2 ft 11 in','7 ft 6 in']>>> natsorted(a)['1 ft 5 in', '2 ft 7 in', '2 ft 11 in', '7 ft 6 in', '10 ft 2 in']

natsorted 标识字符串中任意位置的数字并对其进行排序 当然。下面是您可以使用NatSort进行的一些其他操作 (另请参见 示例 快速入门指南,或 api 了解完整的详细信息)。

注意 NatSorted 被设计为替换内置 排序功能。像 排序的 natsorted的 排序不到位。 要对列表进行排序并将输出分配给同一个变量,必须 显式地将输出分配给变量:

>>> a=['2 ft 7 in','1 ft 5 in','10 ft 2 in','2 ft 11 in','7 ft 6 in']>>> natsorted(a)['1 ft 5 in', '2 ft 7 in', '2 ft 11 in', '7 ft 6 in', '10 ft 2 in']
>>> print(a)# 'a' was not sorted; "natsorted" simply returned a sorted list['2 ft 7 in', '1 ft 5 in', '10 ft 2 in', '2 ft 11 in', '7 ft 6 in']
>>> a=natsorted(a)# Now 'a' will be sorted because the sorted list was assigned to 'a'>>> print(a)['1 ft 5 in', '2 ft 7 in', '2 ft 11 in', '7 ft 6 in', '10 ft 2 in']

有关 自然排序的另一种方法。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
AndroidManifest中需要java“类”或“接口”。xml   swing如何在其他计算机上运行java可执行文件   用于Java开发的Linux下的OpenCV 2.8.4安装   java程序未打印索引0处的元素   java selenium phantomjs span标记未显示   java在另一台计算机上运行JavaFX应用程序   保存和更新类的java包名称   java如何开始使用Hibernate搜索?   java使用ksoap2将参数传递给Web服务?   java如何修复Wildfly中managedConnectionReconnected()中未检查的可丢弃项?   使用aws的java多语言网站   java com。jcraft。杰希。JSCHEException:侦听端口19999的远程端口转发失败   javamaven和Ant测试用例