如何實作 PHP 的 natsort 函數的 Python 等效項?

Mary-Kate Olsen
發布: 2024-11-05 21:36:02
原創
439 人瀏覽過

How to Implement Python's Equivalent of PHP's natsort Function?

Python 與PHP 的natsort 函數的類似:自然順序排序

自然排序演算法以人類可讀的順序對字串列表進行排序,將數字分組和其他角色在一起。與將「12」視為小於「3」的預設排序方法不同,自然排序會產生 [“1”, “10”, “12”, “3”]。

在 Python 中,一個可以使用自訂鍵函數來實現自然排序功能。以下程式碼片段提供了類似 PHP 的 natsort 的實作:

<code class="python">import re

def natural_key(string_):
    """See https://blog.codinghorror.com/sorting-for-humans-natural-sort-order/"""
    return [int(s) if s.isdigit() else s for s in re.split(r'(\d+)', string_)]</code>
登入後複製

範例:

<code class="python">L = ['image1.jpg', 'image15.jpg', 'image12.jpg', 'image3.jpg']
sorted(L)
# Output: ['image1.jpg', 'image12.jpg', 'image15.jpg', 'image3.jpg']
sorted(L, key=natural_key)
# Output: ['image1.jpg', 'image3.jpg', 'image12.jpg', 'image15.jpg']</code>
登入後複製

對於 Unicode 字串,使用 isdecimal() 而不是 isdigit()。對於 Python 2 上的位元組字串,應使用 bytestring.decode().isdigit()。

以上是如何實作 PHP 的 natsort 函數的 Python 等效項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!