Pythonリストをソートする基本と応用
Pythonでリストをソートする方法は?
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 引数を使う。 これらの方法を使い分ければ、どんなリストも思い通りに並べ替えられますね! 他にどんなソートの仕方に興味がありますか? 例えば、特定の要素を先頭に持ってくる方法とか、もっと面白いソートの例を見てみたいとか、ありますか? 😊