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中文網其他相關文章!