natsort.natsorted()-用于自然排序(natural sorting)字符串列表。
参考: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']