accumulate と zip_longest
次のコードを実行したときの出力として、正しいものを1つ選べ。
import itertools
print(list(itertools.accumulate([1, 2, 3, 4])), list(itertools.zip_longest("ab", "c", fillvalue="-")))
- A
[1, 2, 3, 4] [('a', 'c')] - B
[10] [('a', 'c'), ('b', '-')] - C
[1, 3, 6, 10] [('a', 'c')] - D
[1, 3, 6, 10] [('a', 'c'), ('b', '-')]
正解と解説を見る
正解:D
itertools.accumulate は累積(既定は和)を、zip_longest は長い方に合わせて、足りない分を fillvalue で埋める。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `import itertools` | — |
| 2 | `print(list(itertools.accumulate([1, 2, 3, 4])…` | — |
| 結果 | 実際の出力 | [1, 3, 6, 10] [('a', 'c'), ('b', '-')] |
- A
誤り。累積和になる。
zip_longestは長い方に合わせる。 - B
誤り。
accumulateは途中の値も返す。 - C
誤り。
zip_longestは長い方に合わせる。 - D
正しい。
accumulateは累積和、zip_longestは短い方をfillvalueで埋める。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。