復習チャレンジ - Lambda ソート
CoddyのPythonジャーニー「Logic & Flow」セクションの一部 — レッスン 59/78。
ラムダ関数は、sorted() 関数と組み合わせて、さまざまなシナリオでソートをカスタマイズする際に非常に便利です。いくつかの例を挙げます:
文字列を長さでソートする:
names = ["Alice", "Bob", "Charlie", "Diana"]
sorted_names = sorted(names, key=lambda x: len(x))
print(sorted_names)
# 出力: ['Bob', 'Alice', 'Diana', 'Charlie']辞書を値でソートする:
grades = {"Alice": 85, "Bob": 90, "Charlie": 78}
sorted_grades = sorted(grades.items(), key=lambda x: x[1])
print(sorted_grades)
# 出力: [('Charlie', 78), ('Alice', 85), ('Bob', 90)]絶対値で数値をソートする:
numbers = [-10, 15, -20, 25]
sorted_numbers = sorted(numbers, key=lambda x: abs(x))
print(sorted_numbers)
# 出力: [-10, 15, -20, 25]複数の基準でタプルをソートする:
data = [("Alice", 25), ("Bob", 30), ("Charlie", 25)]
sorted_data = sorted(data, key=lambda x: (x[1], x[0]))
print(sorted_data)
# 出力: [('Alice', 25), ('Charlie', 25), ('Bob', 30)]チャレンジ
簡単タプルのリスト data を引数として受け取る、sort_tuples という名前の関数を作成してください。data 内の各タプルには、文字列と数値の2つの要素が含まれています。この関数は、sorted() 関数とラムダ関数を使用して、2番目の要素(数値)に基づいてタプルのリストを昇順でソートする必要があります。関数はソートされたタプルのリストを返す必要があります。
チートシート
文字列を長さでソートする:
names = ["Alice", "Bob", "Charlie", "Diana"]
sorted_names = sorted(names, key=lambda x: len(x))
print(sorted_names)
# 出力: ['Bob', 'Alice', 'Diana', 'Charlie']辞書を値でソートする:
grades = {"Alice": 85, "Bob": 90, "Charlie": 78}
sorted_grades = sorted(grades.items(), key=lambda x: x[1])
print(sorted_grades)
# 出力: [('Charlie', 78), ('Alice', 85), ('Bob', 90)]数値を絶対値でソートする:
numbers = [-10, 15, -20, 25]
sorted_numbers = sorted(numbers, key=lambda x: abs(x))
print(sorted_numbers)
# 出力: [-10, 15, -20, 25]タプルを複数の基準でソートする:
data = [("Alice", 25), ("Bob", 30), ("Charlie", 25)]
sorted_data = sorted(data, key=lambda x: (x[1], x[0]))
print(sorted_data)
# 出力: [('Alice', 25), ('Charlie', 25), ('Bob', 30)]自分で試してみよう
def sort_tuples(data):
# ここにコードを記述してくださいこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。