ホームページ > バックエンド開発 > Python チュートリアル > 数字を含む文字列を正しく並べ替えるにはどうすればよいですか?

数字を含む文字列を正しく並べ替えるにはどうすればよいですか?

DDD
リリース: 2024-12-03 14:49:10
オリジナル
304 人が閲覧しました

How to Sort Strings Containing Numbers Correctly?

数字を含む文字列を適切に並べ替える方法

数字を含む文字列を並べ替えるのは難しい場合があります。デフォルトの sort() メソッドは各文字を独自のエンティティとして扱うため、順序が正しくなくなります。このような文字列を正しく並べ替えるには、より洗練されたアプローチが必要です。

効果的な方法の 1 つは、正規表現を利用して文字列から数値コンポーネントを抽出する人間による並べ替えです。この手法により、数字をアルファベット部分とは独立して並べ替えることができます。

人間による並べ替えを実装するには、次の手順に従います。

  1. re モジュールをインポートします。
  2. 関数 atoi(text) を定義して、文字列を整数に変換するか、文字列でない場合は文字列のままにします。
  3. 関数 Natural_keys(text) を定義し、正規表現 (d ) を使用して文字列を分割します。
  4. sort() の key パラメータを使用してリストを並べ替え、natural_keys を渡します。 function.

例:

import re

def atoi(text):
    return int(text) if text.isdigit() else text

def natural_keys(text):
    return [ atoi(c) for c in re.split(r'(\d+)', text) ]

alist = [
    "something1",
    "something12",
    "something17",
    "something2",
    "something25",
    "something29"]

alist.sort(key=natural_keys)
print(alist)
ログイン後にコピー

出力:

['something1', 'something2', 'something12', 'something17', 'something25', 'something29']
ログイン後にコピー

このアプローチでは、文字列は、アルファベット部分と数字部分の両方を考慮して作成されます。

以上が数字を含む文字列を正しく並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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