Pythonでリストをソートする方法はいくつかあって、とっても便利なんですよ!😊
一番簡単なのは、リストの sort() メソッドを使う方法です。これは、元のリストを直接変更してソートします。
# 元のリスト
my_list = [3, 1, 4, 1, 5, 9, 2, 6]
# リストを昇順にソート
my_list.sort()
print(my_list)
# 出力: [1, 1, 2, 3, 4, 5, 6, 9]
もし、元のリストはそのままにして、ソートされた新しいリストが欲しい場合は、sorted() 関数を使うのがおすすめです。
# 元のリスト
my_list = [3, 1, 4, 1, 5, 9, 2, 6]
# ソートされた新しいリストを作成
new_list = sorted(my_list)
print(new_list)
# 出力: [1, 1, 2, 3, 4, 5, 6, 9]
print(my_list)
# 出力: [3, 1, 4, 1, 5, 9, 2, 6] (元のリストは変更されない)
どちらの方法でも、降順(大きい順)にソートしたい場合は、reverse=True という引数を追加すればOKです。
# 降順にソートする場合
my_list = [3, 1, 4, 1, 5, 9, 2, 6]
my_list.sort(reverse=True)
print(my_list)
# 出力: [9, 6, 5, 4, 3, 2, 1, 1]
new_list_desc = sorted(my_list, reverse=True)
print(new_list_desc)
# 出力: [9, 6, 5, 4, 3, 2, 1, 1]
さらに、リストの要素が文字列だったり、もっと複雑な条件でソートしたい場合もありますよね? そんな時は key 引数を使うと、ソートの基準をカスタマイズできますよ! 例えば、文字列の長さを基準にソートしたり、タプルの特定の要素を基準にソートしたりできます。
- 文字列の長さを基準にソート:
python
words = ["apple", "banana", "cherry", "date"]
words.sort(key=len)
print(words)
# 出力: ['date', 'apple', 'banana', 'cherry']
- タプルの2番目の要素を基準にソート:
python
data = [(1, 'B'), (3, 'A'), (2, 'C')]
data.sort(key=lambda item: item[1]) # lambda関数で2番目の要素を指定
print(data)
# 出力: [(3, 'A'), (1, 'B'), (2, 'C')]
Pythonのリストソート、とっても奥が深くて面白いですよね!
- 元のリストを直接変更したい場合は
sort() メソッド。
- 新しいソート済みリストが欲しい場合は
sorted() 関数。
- 降順にしたい場合は
reverse=True を追加。
- 複雑な条件でソートしたい場合は
key 引数を使う。
これらの方法を使い分ければ、どんなリストも思い通りに並べ替えられますね!
他にどんなソートの仕方に興味がありますか? 例えば、特定の要素を先頭に持ってくる方法とか、もっと面白いソートの例を見てみたいとか、ありますか? 😊
48 件のコメント