データ集計の利用
CoddyのPythonジャーニー「Logic & Flow」セクションの一部 — レッスン 53/78。
リスト内包表記は、既存のイテラブルに基づいて新しいリストを作成するための簡潔な方法を提供します。sum()、min()、max() などのデータ集計関数をリスト内包表記の中に直接組み込むことで、新しいリストが作成される際にその要素に対して計算を行うことができます。
平方和の計算:
numbers = [1, 2, 3, 4, 5]
sum_of_squares = sum([n * n for n in numbers])
print(sum_of_squares)
# 出力: 55この例では、リスト内包表記 [n * n for n in numbers] が平方のリストを作成し、sum() 関数がこれらの平方の合計を計算します。
変換後の値の最小値を求める:
numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
print(min_absolute)
# 出力: 0ここでは、リスト内包表記 [abs(n) for n in numbers] は絶対値のリストを作成し、min() 関数はこのリスト内の最小値を見つけます。
フィルタリングされた値の最大値を求める:
numbers = [1, 2, 3, 4, 5, 6]
max_even = max([n for n in numbers if n % 2 == 0])
print(max_even)
# 出力: 6この例では、リスト内包表記 [n for n in numbers if n % 2 == 0] は偶数のリストを作成し、max() 関数はこのリスト内の最大値を見つけます。
チャレンジ
簡単数値のリストを引数として受け取る関数 sum_positive_evens を作成してください。リスト内包表記を使用して正の偶数をフィルタリングし、次に sum() を使用してそれらの合計を計算します。その結果を返してください。
入力例:
numbers = [-10, -5, 0, 2, 4, 7, 10, 12]出力例:
28チートシート
リスト内包表記は、sum()、min()、max()などの集約関数と組み合わせて、変換またはフィルタリングされたデータに対して計算を実行できます。
二乗の和を計算する:
numbers = [1, 2, 3, 4, 5]
sum_of_squares = sum([n * n for n in numbers])
# 出力: 55変換された値の最小値を見つける:
numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
# 出力: 0フィルタリングされた値の最大値を見つける:
numbers = [1, 2, 3, 4, 5, 6]
max_even = max([n for n in numbers if n % 2 == 0])
# 出力: 6自分で試してみよう
def sum_positive_evens(numbers):
# ここにコードを記述してくださいこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。