Pythonでリストをソートする方法はいくつかあって、とっても便利だよ!
1. sort() メソッドを使う方法
これは、元のリストを直接並べ替える方法だよ。リスト自体が変更されるから、元の順番を覚えておきたい時は注意が必要だよ。
- 昇順(小さい順):
python
my_list = [3, 1, 4, 1, 5, 9, 2, 6]
my_list.sort()
print(my_list) # 出力: [1, 1, 2, 3, 4, 5, 6, 9]
- 降順(大きい順):
reverse=True をつけるだけ!
python
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]
2. sorted() 関数を使う方法
こっちは、元のリストはそのままにして、新しくソートされたリストを返してくれるんだ。だから、元のリストも残しておきたい時にぴったり!
- 昇順:
python
my_list = [3, 1, 4, 1, 5, 9, 2, 6]
new_list = sorted(my_list)
print(my_list) # 出力: [3, 1, 4, 1, 5, 9, 2, 6] (元のリストは変わらない!)
print(new_list) # 出力: [1, 1, 2, 3, 4, 5, 6, 9] (新しくソートされたリスト)
- 降順: こっちも
reverse=True でOK!
python
my_list = [3, 1, 4, 1, 5, 9, 2, 6]
new_list = sorted(my_list, reverse=True)
print(new_list) # 出力: [9, 6, 5, 4, 3, 2, 1, 1]
3. カスタムソート(キーを指定する)
もっと複雑な並べ替えをしたいときは、key 引数を使うと便利だよ。例えば、文字列の長さに応じてソートしたり、タプルの特定の要素でソートしたりできるんだ。
例えば、文字列の長さを基準にソートしてみよう!
words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=len) # len関数で文字列の長さを取得してソート
print(sorted_words) # 出力: ['date', 'apple', 'banana', 'cherry']
タプルのリストで、2番目の要素でソートする場合も見てみよう!
data = [(1, 'C'), (2, 'A'), (3, 'B')]
sorted_data = sorted(data, key=lambda item: item[1]) # lambdaでタプルの2番目の要素を指定
print(sorted_data) # 出力: [(2, 'A'), (3, 'B'), (1, 'C')]
Pythonのリストソート、こんな感じで色々な方法があって、やりたいことに合わせて選べるのが嬉しいよね!
- 次に、どんな種類のリストをソートしたいか、もっと具体的に教えてくれる?
- それとも、ソートした後に何かしたいことがあるかな?
- あるいは、ソートの応用例について、もっと掘り下げてみようか?
48 件のコメント