natsort.natsorted()-用于自然排序(natural sorting)字符串列表。

发布时间 2023-09-17 21:08:37作者: yayagogogo

参考:https://natsort.readthedocs.io/en/stable/api.html#natsort.natsorted

语法格式

natsort.natsorted(seq: Iterable[T], key: Optional[Callable[[T], Union[natsort.utils.SupportsDunderLT, natsort.utils.SupportsDunderGT, None]]] = None, reverse: bool = False, alg: Union[natsort.ns_enum.ns, int] = <ns.DEFAULT: 0>) 

参数解释:

  • seq: 要排列的对象。
  • key: 可选的,用于确定如何对可迭代对象的每个元素排序的键。
  • reverse: 接受布尔值,以反向排序的顺序返回列表。默认为False。
  • alg: ns enum 可选的,该选项用于控制排序时使用的算法。默认值是nst.INT。

返回一个list。

natsort.ns—用于配置和控制 natsorted 函数的行为

ns.INT—默认值-将数字解析为整数。

ns.FLOAT—将数字解析为浮点数。

ns.PATH—确保按照文件路径的层次结构进行排序,而不仅仅是按照字符的字典顺序。

ns.IGNORECASE—告诉natsort在排序时忽略大小写。例如,['Banana', 'apple', 'Banana', 'apple']将被分类为['apple', 'apple', 'Banana', 'Banana']。

代码示例

from natsort import natsorted, ns

my_list = ["/var/tmp(1)/file2.txt", "/var/tmp/file10.txt", "/var/tmp(10)/file1.txt"]

sorted_list = natsorted(my_list)
print(sorted_list)
# ['/var/tmp(1)/file2.txt', '/var/tmp(10)/file1.txt', '/var/tmp/file10.txt']

sorted_list1 = natsorted(my_list, alg=ns.PATH)
print(sorted_list1)
# ['/var/tmp/file10.txt', '/var/tmp(1)/file2.txt', '/var/tmp(10)/file1.txt']