Python 檔名排序(排了sorted排不了的正是我natsorted噠!)
阿新 • • 發佈:2021-07-02
Python 檔名排序
使用natsort包的natsorted方法
from natsort import natsorted
官方說明中有提到
natsort provides a function natsorted that helps sort lists “naturally” (“naturally” is rather ill-defined, but in general it means sorting based on meaning and not computer code point).
natsort 提供一個 natsorted 函式,這個函式可以自然的排列列表(“自然”的定義是不明確的,但是他會根據一定的含義進行排序,而不只是根據計算機程式碼)
>> from natsort import 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']
Note: natsorted is designed to be a drop-in replacement for the built-in sorted function. Like sorted, natsorted does not sort in-place. To sort a list and assign the output to the same variable, you must explicitly assign the output to a variable
注意:natsorted 被設計為內建 sorted 函式的替代品。像 sorted 一樣,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'並沒有被排序;"natsorted"只是簡單的返回了一個列表 ['2 ft 7 in', '1 ft 5 in', '10 ft 2 in', '2 ft 11 in', '7 ft 6 in'] >> a = natsorted(a) # 現在'a'將會被排序,因為將排序過的'a'賦值給了'a' >> print(a) ['1 ft 5 in', '2 ft 7 in', '2 ft 11 in', '7 ft 6 in', '10 ft 2 in']