ホームページ >バックエンド開発 >Python チュートリアル >Python は自然な文字列ソートを効率的に実行するにはどうすればよいでしょうか?

Python は自然な文字列ソートを効率的に実行するにはどうすればよいでしょうか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-04 00:57:40443ブラウズ

How Can Python Efficiently Perform Natural String Sorting?

文字列の自然な並べ替え

問題ステートメント

文字列を辞書順に並べ替えても、常に望ましい順序が得られるわけではありません。たとえば、数値を含むリストは、整数ではなく桁ごとに並べ替えることができます。この問題は、各文字を個別に処理するデフォルトの並べ替えメカニズムに起因します。

組み込み関数

ただし、Python には自然言語に特化した組み込み関数が提供されていません。文字列のソートでは、この問題に対処できるサードパーティのライブラリがあります。このようなライブラリの 1 つが natsort で、自然な並べ替えを実行するためのさまざまなメソッドを提供します。

natsort ライブラリ

Natsort は、自然な並べ替えのための 2 つの主要なアプローチを提供します。並べ替え関数を使用するか、並べ替えキー。

並べ替え関数

natsort ソート関数を利用するには、まず次のようにインポートします。

from natsort import natsorted

その後、この関数を使用して文字列のリストをソートできます:

x = ['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']
sorted_list = natsorted(x, key=lambda y: y.lower())

あるいは、大文字と小文字を区別しないアルゴリズムを指定することもできます機密性:

sorted_list = natsorted(x, alg=ns.IGNORECASE)

ソートキー

ソートキーを使用して文字列のリストをソートする必要がある場合は、以下をインポートします:

from natsort import natsort_keygen

ソートキーの作成には、各文字列からキーを抽出する関数の指定が含まれます。これは通常、文字列にデータが埋め込まれている場合に使用されます。例:

keygen = natsort_keygen(key=lambda y: y.lower())
sorted_list = sorted(l1, key=keygen)

その他のオプション

より複雑な自然な並べ替えシナリオの場合、natsort ライブラリは追加の機能とカスタマイズ オプションを提供します。詳細については、ライブラリのドキュメントを参照してください。さらに、バージョン 7.1.0 では、natsort はローカル ファイル システム ブラウザの順序で文字列を並べ替える os_sorted 関数を提供します。

以上がPython は自然な文字列ソートを効率的に実行するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。