文字列数値のリストを数値的に並べ替える
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 サイトの他の関連記事を参照してください。