ホームページ > バックエンド開発 > Python チュートリアル > PHP の natsort 関数に相当する Python を実装するにはどうすればよいですか?

PHP の natsort 関数に相当する Python を実装するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-05 21:36:02
オリジナル
508 人が閲覧しました

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

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート