sum() でその合計 385 を表示しよう。[ ] を ( ) に変えたものです。値を全部いっぺんに作らず、必要になったときに1つずつ生成します(省メモリ)。gen = (w.upper() for w in ['a', 'b'])
print(list(gen)) → ['A', 'B'][ … ]、ジェネレータ式なら ( … )。囲むカッコが違うだけで、中身の書き方は同じです。range(1, 11))の各数の二乗を出すジェネレータ式を作り、gen に入れる[ ] ではなく ( ) で囲むこと** で計算できるsum(gen) は書いてあるので、385 と出ればOKsum() / max() / any() などに直接渡して集計するときに便利です。[ ] だと全要素をメモリに並べますが、( ) なら1つずつ流すので、巨大なデータの合計も少ないメモリで計算できます。( ) で囲むとジェネレータ式x**2 は x の2乗385
全問正解でクエストクリア!
問題 1: 1〜100の偶数のジェネレータを作って len(list()) で個数を表示しよう!
問題 2: ['hello', 'world', 'python'] の各単語を大文字にするジェネレータを作って list() で表示しよう!
問題 3: ジェネレータ式で 1〜20 の3の倍数の合計を表示しよう!