最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python natsort庫實現(xiàn)自然排序

 更新時間:2026年01月07日 10:39:57   作者:司徒軒宇  
本文介紹了Python的natsort庫,該庫實現(xiàn)了自然排序功能,能夠智能識別字符串中的數(shù)字部分并按照數(shù)值大小進行排序,感興趣的可以了解一下

在數(shù)據(jù)處理和文件管理中,我們經(jīng)常遇到需要排序的字符串包含數(shù)字的情況。Python 內(nèi)置的 sorted() 函數(shù)在遇到 "file2.txt""file10.txt" 時會給出違反直覺的結果,這時就需要自然排序(Natural Sorting)。本文將深入介紹 Python 的 natsort 庫,帶你解鎖智能排序新姿勢。

一、什么是自然排序?

字典序 vs 自然序

假設有以下文件名列表:

files = ["file1.txt", "file10.txt", "file2.txt", "file20.txt"]
排序方式結果
字典序(sorted()[‘file1.txt’, ‘file10.txt’, ‘file2.txt’, ‘file20.txt’]
自然序(natsorted())[‘file1.txt’, ‘file2.txt’, ‘file10.txt’, ‘file20.txt’]

自然排序的核心特點:智能識別字符串中的數(shù)字部分,按照數(shù)值大小進行排序。

二、快速入門

安裝

pip install natsort

基礎用法

from natsort import natsorted

files = ["image99.jpg", "image100.jpg", "image1.jpg"]
print(natsorted(files))  # ['image1.jpg', 'image99.jpg', 'image100.jpg']

三、六大核心應用場景

1. 文件名排序

處理帶有序號的圖像幀、日志文件等:

import os

files = os.listdir("video_frames")
sorted_files = natsorted(files)  # 自動處理 frame_1.jpg, frame_2.jpg...frame_10.jpg

2. 版本號排序

正確處理軟件版本號:

versions = ["v1.2.3", "v1.10.0", "v2.0.0-beta", "v1.9.1"]
print(natsorted(versions))  # ['v1.2.3', 'v1.9.1', 'v1.10.0', 'v2.0.0-beta']

3. 混合文本排序

處理包含數(shù)字的中文/英文混合文本:

chapters = ["第5章", "第12章", "第1章"]
print(natsorted(chapters))  # ['第1章', '第5章', '第12章']

4. IP地址排序

網(wǎng)絡管理場景下的IP地址排序:

ips = ["192.168.1.100", "192.168.1.2", "192.168.1.20"]
print(natsorted(ips))  # ['192.168.1.2', '192.168.1.20', '192.168.1.100']

5. 復雜數(shù)據(jù)結構排序

對字典列表按特定字段排序:

products = [
    {"name": "Product 2", "price": 50},
    {"name": "Product 10", "price": 30},
    {"name": "Product 1", "price": 40}
]
print(natsorted(products, key=lambda x: x["name"]))
# [{'name': 'Product 1', 'price': 40}, {'name': 'Product 2', 'price': 50}, ...]

6. 科學數(shù)據(jù)排序

處理實驗數(shù)據(jù)編號:

samples = ["Sample-1M", "Sample-500K", "Sample-100K"]
print(natsorted(samples))  # ['Sample-100K', 'Sample-500K', 'Sample-1M']

四、高級技巧

1. 忽略大小寫

from natsort import ns

files = ["FileA.txt", "fileC.txt", "FILEb.txt"]
print(natsorted(files, alg=ns.IGNORECASE))  # ['FileA.txt', 'FILEb.txt', 'fileC.txt']

2. 逆序排序

print(natsorted(files, reverse=True))  # ['file20.txt', 'file10.txt', 'file2.txt', 'file1.txt']

3. 多字段排序

data = ["v1-2", "v1-10", "v2-1", "v1-1"]
print(natsorted(data, key=lambda x: (x.split('-')[0], x.split('-')[1])))

到此這篇關于Python natsort庫實現(xiàn)自然排序的文章就介紹到這了,更多相關Python natsort自然排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • opencv實現(xiàn)文檔矯正

    opencv實現(xiàn)文檔矯正

    這篇文章主要為大家詳細介紹了opencv實現(xiàn)文檔矯正功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Python中的正則表達式與JSON數(shù)據(jù)交換格式

    Python中的正則表達式與JSON數(shù)據(jù)交換格式

    正則表達式 是一個特殊的字符序列,一個字符串是否與我們所設定的這樣的字符序列,相匹配快速檢索文本、實現(xiàn)替換文本的操作。這篇文章主要介紹了Python中的正則表達式與JSON ,需要的朋友可以參考下
    2019-07-07
  • python通過pillow識別動態(tài)驗證碼的示例代碼

    python通過pillow識別動態(tài)驗證碼的示例代碼

    在上網(wǎng)時,經(jīng)常會遇到驗證碼,本次試驗將帶領大家認識驗證碼的一些特性,并利用 Python 中的 pillow 庫完成對驗證碼的破解。感興趣的可以了解一下
    2021-11-11
  • Python自動化測試框架之unittest使用詳解

    Python自動化測試框架之unittest使用詳解

    unittest是Python自動化測試框架之一,提供了一系列測試工具和接口,支持單元測試、功能測試、集成測試等多種測試類型。unittest使用面向?qū)ο蟮乃枷雽崿F(xiàn)測試用例的編寫和管理,可以方便地擴展和定制測試框架,支持多種測試結果輸出格式
    2023-04-04
  • PaddleOCR 識別表情包文字示例詳解

    PaddleOCR 識別表情包文字示例詳解

    這篇文章主要為大家介紹了PaddleOCR 識別表情包文字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 使用Python從Excel文件中自動提取圖片的全過程

    使用Python從Excel文件中自動提取圖片的全過程

    在日常數(shù)據(jù)處理工作中,我們常常需要面對包含大量圖片的Excel文件,無論是產(chǎn)品目錄、員工檔案還是資產(chǎn)清單,這些圖片往往承載著重要的視覺信息,所以本文將深入探討如何使用Python與spire.xls for python庫,為您提供一個詳細、可操作的Excel圖片提取教程
    2026-02-02
  • 在Python3中初學者應會的一些基本的提升效率的小技巧

    在Python3中初學者應會的一些基本的提升效率的小技巧

    這篇文章主要介紹了在Python3中的一些基本的小技巧,有利于剛剛上手Python的初學者提升開發(fā)效率,需要的朋友可以參考下
    2015-03-03
  • Python?Locust搭建高性能負載測試工具

    Python?Locust搭建高性能負載測試工具

    Locust?是一個開源的、基于?Python?的負載測試工具,它允許開發(fā)者使用?Python?代碼來定義用戶行為,從而模擬真實用戶對系統(tǒng)進行壓力測試,所以本文就來使用Locust搭建一個高性能負載測試工具吧
    2025-06-06
  • Python探索之靜態(tài)方法和類方法的區(qū)別詳解

    Python探索之靜態(tài)方法和類方法的區(qū)別詳解

    這篇文章主要介紹了Python探索之靜態(tài)方法和類方法的區(qū)別詳解,小編覺得還是挺不錯的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • Python文件操作基本流程代碼實例

    Python文件操作基本流程代碼實例

    這篇文章主要介紹了Python文件操作基本流程代碼實例,具有一定借鑒價值,需要的朋友可以了解下。
    2017-12-12

最新評論

大理市| 东兰县| 曲阳县| 从江县| 楚雄市| 琼海市| 亳州市| 辽源市| 应城市| 察隅县| 七台河市| 库伦旗| 澜沧| 通州区| 合作市| 石楼县| 都兰县| 塔城市| 彭阳县| 大埔区| 肇东市| 黄浦区| 尉犁县| 汨罗市| 抚远县| 三亚市| 佛学| 嘉禾县| 白城市| 大关县| 同仁县| 新龙县| 普定县| 叶城县| 阳山县| 河间市| 江华| 玉田县| 武清区| 安丘市| 哈尔滨市|