Pythonリストをソートする基本と応用

SCORE: 3150
プライベート

Pythonでリストをソートする方法は?

2025/11/08 22:35

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 引数を使う。

これらの方法を使い分ければ、どんなリストも思い通りに並べ替えられますね!

他にどんなソートの仕方に興味がありますか? 例えば、特定の要素を先頭に持ってくる方法とか、もっと面白いソートの例を見てみたいとか、ありますか? 😊

このチャットはプライベートです。投稿者のみがメッセージを送信できます。

チャット内容の閲覧は可能です。

AIの回答は正しいとは限りません。また、個人情報などの重要な情報は入力しないでください
0

48 件のコメント

読み込み中...
Your avatar