\

Pythonでは、リストのソートに sort() メソッドや sorted() 関数を使用します。しかし、これらのメソッドと関数はデフォルトでは大文字と小文字を区別します。つまり、大文字が先に来て、その後に小文字が続くようにソートされます。

しかし、大文字と小文字を区別せずにリストをソートしたい場合はどうすればよいでしょうか?そのためには、key 引数に str.lowerstr.casefold を指定します。

以下に具体的なコードを示します。

# 大文字小文字を区別せずにソートする
lst = ['Zebra', 'apple', 'Banana', 'mango', 'Apricot', 'kiwi', 'Papaya']
sorted_lst = sorted(lst, key=str.lower)
print(sorted_lst)
# 出力: ['apple', 'Apricot', 'Banana', 'kiwi', 'mango', 'Papaya', 'Zebra']

このコードでは、str.lowerkey 引数に指定しています。これにより、ソートの際に各要素が小文字に変換され、その結果が比較に使用されます。元のリストの要素自体は変更されません。

なお、Python 3.3以降では str.casefold を使用することもできます。str.casefold は、str.lower と同様に文字列を小文字に変換しますが、一部の特殊なケース(例えばドイツ語のエスツェット(ß)を「ss」に変換するなど)をより適切に処理します。

以上が、Pythonで大文字小文字を無視したリストのソート方法です。この方法を使えば、大文字と小文字を区別せずにリストを簡単にソートすることができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です