Menu
Coddy logo textTech

データの効率的なソート

CoddyのPythonジャーニー「Logic & Flow」セクションの一部 — レッスン 48/78。

ソート(並べ替え)はコンピュータサイエンスにおける基本的な操作であり、Pythonはデータを効率的にソートするための強力な組み込みツールを提供しています。ソートのための主要な関数は sorted() であり、数値、文字列、さらにはより複雑なオブジェクトなど、さまざまな種類のデータをソートするために使用できます。

基本的なソート:

sorted() 関数は、イテラブル(例:リスト、タプル、またはセット)を引数として受け取り、ソートされた要素を含む新しいリストを返します。デフォルトでは、昇順でソートされます。

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# 出力: [1, 1, 2, 3, 4, 5, 6, 9]

この例では、sorted()numbers リストを昇順でソートします。

逆順のソート:

降順でソートするには、reverse パラメータを使用し、それを True に設定します。

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)
# 出力: [9, 6, 5, 4, 3, 2, 1, 1]

ここでは、sorted()numbers リストを降順でソートします。

文字列のソート:

sorted() 関数は、辞書順(つまり、辞書に現れる順序)に基づいて文字列をソートすることもできます。

words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
print(sorted_words)
# 出力: ['apple', 'banana', 'cherry']

この例では、sorted()words リストをアルファベット順にソートします。

キー関数を使用したカスタムソート:

より複雑なソートが必要な場合は、keyパラメータを使用して、ソート順を決定する関数を指定できます。key関数はソートの前に各要素に適用され、返された値が比較に使用されます。

words = ["banana", "kiwi", "fig"]
sorted_words_by_length = sorted(words, key=len)
print(sorted_words_by_length)
# 出力: ['fig', 'kiwi', 'banana']

この場合、sorted()len() 関数を key として使用し、各単語の長さに基づいて words リストをソートします。

challenge icon

チャレンジ

簡単

sorted() 関数を使用して、以下のソートタスクを実行するプログラムを作成してください。

  1. 数値のリストを昇順でソートする。
  2. 同じ数値のリストを降順でソートする。
  3. 文字列のリストをアルファベット順でソートする。
  4. 同じ文字列のリストを長さに基づいてソートする。

チートシート

sorted() 関数はデータをソートし、ソートされた要素を含む新しいリストを返します。

基本的なソート(昇順):

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
# 出力: [1, 1, 2, 3, 4, 5, 6, 9]

逆順ソート(降順):

sorted_numbers_desc = sorted(numbers, reverse=True)
# 出力: [9, 6, 5, 4, 3, 2, 1, 1]

文字列をアルファベット順にソートする:

words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
# 出力: ['apple', 'banana', 'cherry']

key関数を使用したカスタムソート:

sorted_words_by_length = sorted(words, key=len)
# 文字列の長さでソートします

自分で試してみよう

# 初期入力
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]

# タスク 1: 数値を昇順にソートする
# タスク 2: 数値を降順にソートする
# タスク 3: 単語をアルファベット順にソートする
# タスク 4: 単語を長さ順にソートする

# 各タスクについて、'pass' を自分のコードに置き換えてください
ascending_numbers = None
descending_numbers = None
alphabetical_words = None
length_sorted_words = None

# 結果を表示する
print("Ascending:", ascending_numbers)
print("Descending:", descending_numbers)
print("Alphabetical:", alphabetical_words)
print("By Length:", length_sorted_words)
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Logic & Flowのすべてのレッスン