Menu
Coddy logo textTech

データの効率的なソート

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

Sorting はコンピューターサイエンスにおける基本的な操作であり、Python には data を効率的に Sort するための強力な組み込みツールが用意されています。Sort に使用する主要な関数は sorted() で、numbers、文字列、さらに複雑なオブジェクトなど、さまざまな種類の data を Sort するために使用できます。

基本的な Sorting:

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

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 リストを昇順に並べ替えます。

逆順のSorting:

降順でSortするには、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 リストを descending order で並べ替えます。

文字列のSorting:

sorted()関数は、文字列を辞書式順序(つまり、辞書に載る順序)に基づいてSortすることもできます。

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

この例では、sorted()wordsリストをアルファベット順に並べ替えます。

Key関数を使ったカスタムSorting:

より複雑なSortingの要件には、Sortingのorderを決定する関数を指定するためにkeyパラメーターを使用できます。key関数はSortingの前にeach要素に適用され、返された値が比較に使用されます。

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

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

challenge icon

チャレンジ

簡単

sorted()関数を使用して、次の Sorting tasks を実行するプログラムを書いてください:

  1. numbers のリストを ascending order に Sort します。
  2. 同じ numbers のリストを descending order に Sort します。
  3. 文字列のリストを alphabetically に Sort します。
  4. 同じ文字列のリストを length に基づいて Sort します。

自分で試してみよう

# スターター入力
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]

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

# 各タスクの 'None' を自分のコードに置き換えてください
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のすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ