数字を含む文字列を適切に並べ替える方法
数字を含む文字列を並べ替えるのは難しい場合があります。デフォルトの sort() メソッドは各文字を独自のエンティティとして扱うため、順序が正しくなくなります。このような文字列を正しく並べ替えるには、より洗練されたアプローチが必要です。
効果的な方法の 1 つは、正規表現を利用して文字列から数値コンポーネントを抽出する人間による並べ替えです。この手法により、数字をアルファベット部分とは独立して並べ替えることができます。
人間による並べ替えを実装するには、次の手順に従います。
例:
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 サイトの他の関連記事を参照してください。