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

Python で文字列数値を数値的に並べ替えるにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-08 00:07:11159ブラウズ

How to Sort String Numbers Numerically in Python?

文字列数値を数値的に並べ替える

数値を表す文字列のリストを扱う場合、実際の数値に基づいて並べ替えると次のように見えるかもしれません。簡単な作業。ただし、Python のデフォルトの sort() 関数は予期しない結果をもたらす可能性があります。

この問題は、sort() 関数が文字列を辞書順に比較する、つまり数値ではなくアルファベット順に並べ替えるために発生します。これを解決するには、並べ替えを実行する前に文字列を実際の整数に変換することが重要です。

次の Python コードを考えてみましょう。

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
for item in list1:
    item = int(item)

list1.sort()

このコードでは、最初に、 int() 関数を使用してリストを整数に変換します。ただし、変換された整数値を並べ替えで使用することは無視されます。その結果、関数は元の文字列を比較し、次の出力を生成します:

['1', '10', '2', '200', '22', '23', '3', '4']

リストを数値的に並べ替えるには、以下に示すように、変換された整数を並べ替えに組み込む必要があります:

list1 = [int(x) for x in list1]
list1.sort()

今回、関数は整数値を正しく比較し、目的の値を生成します。出力:

['1', '2', '3', '4', '10', '22', '23', '200']

または、文字列を整数に変換する代わりに保持する必要がある場合は、並べ替え中に key 関数を使用できます。 sort() 関数を使用すると、比較前に各要素に適用されるキー関数を指定できます。これにより、比較基準をカスタマイズできます。

たとえば、key 関数を使用して文字列のリストを数値的に並べ替えるには、次のコードを使用できます。

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
list1.sort(key=int)

この場合、キー関数 int() は、比較の前に各文字列に適用されます。この関数は文字列を整数に変換し、sort() 関数は結果の整数値を比較して、同じ出力を生成します。

['1', '2', '3', '4', '10', '22', '23', '200']

Python での sort() 関数の仕組みを理解し、主要な関数を利用する必要に応じて、元の形式に関係なく、文字列番号のリストを数値的に効果的に並べ替えることができます。

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

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