PHP の natsort 関数に対する Python の類似物: 自然順序ソート
自然ソート アルゴリズムは、人間が判読できる順序で文字列のリストを並べ替え、数値をグループ化します。他のキャラクターも一緒に。 "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 文字列の場合は、isdigital() の代わりに isdecmal() を使用します。 Python 2 のバイト文字列の場合は、bytestring.decode().isdigit() を使用する必要があります。
以上がPHP の natsort 関数に相当する Python を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。