Kodrill

Python 3 エンジニア認定実践試験 / データ型とアルゴリズム ・ 無料問題 3/5

データ型とアルゴリズム 問題3[イテレーターの組み合わせ (itertools)]

次のコードを実行したときの出力を選んでください。

Python
import itertools​print([(k, len(list(g))) for k, g in itertools.groupby("aabccca")])print(list(itertools.accumulate([1, 2, 3, 4])))

選択肢

  • A.[('a', 3), ('b', 1), ('c', 3)] [1, 3, 6, 10]
  • B.[('a', 2), ('b', 1), ('c', 3), ('a', 1)] [1, 3, 6, 10]正解
  • C.[('a', 2), ('b', 1), ('c', 3), ('a', 1)] [1, 2, 3, 4]
  • D.[('a', 3), ('b', 1), ('c', 3)] 10

解説実行して確認済み

itertools.groupby は、連続して同じ値が続く部分をまとめます。並べ替えずに使うと、離れた位置にある同じ値は別のグループになるため、最後の a は別グループです (全体で集計したいときは先にソートします)。accumulate は累積の値を順に返すので [1, 3, 6, 10] です。

この問題の答えは、試験の対象バージョンでコードを実際に実行して確かめています。確かめ方は運営者情報に書いています。

「データ型とアルゴリズム」の要点を解説記事で読む

「データ型とアルゴリズム」の無料問題

ここで公開しているのは無料範囲の問題です。無料登録すると、解答の記録・ダッシュボードでの復習ができ、 プレミアムならこの問題セットの全問題と本番形式の模擬試験も解けます。