ホームページ > バックエンド開発 > Python チュートリアル > Python で文字列番号のリストを数値的に並べ替える方法は?

Python で文字列番号のリストを数値的に並べ替える方法は?

Linda Hamilton
リリース: 2024-12-08 17:57:12
オリジナル
646 人が閲覧しました

How to Sort a List of String Numbers Numerically in Python?

文字列数値のリストを数値的に並べ替える

Python の sort() 関数は、その単純さにもかかわらず、数値を表す文字列を扱う場合に誤解を招く可能性があります。 。以下のコード スニペットに示されているように、これらの文字列を整数に変換して並べ替えようとすると、誤った結果が生成されます:

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

list1.sort()
print(list1)
ログイン後にコピー

出力:

['1', '10', '2', '200', '22', '23', '3', '4']
ログイン後にコピー

この問題を修正するには、次の手順を実行する必要があります。実際に文字列を整数に変換します。修正されたコードは次のとおりです:

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
list1 = [int(x) for x in list1]
list1.sort()
ログイン後にコピー

これにより、正しい数値順序が出力されます:

['1', '2', '3', '4', '10', '22', '23', '200']
ログイン後にコピー

あるいは、要素を文字列として保持する必要がある場合は、sort で key パラメーターを使用できます。 ()。このパラメーターは、比較前に各要素で呼び出される関数を受け入れます。要素自体ではなく、キー関数の戻り値が比較に使用されます。

例:

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
list1.sort(key=int)
ログイン後にコピー

または

list1 = sorted([int(x) for x in list1])
ログイン後にコピー

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

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