Python3エンジニア認定基礎試験 第5章 データ構造 予想問題と解説
Python3エンジニア認定基礎試験「第5章 データ構造」の予想問題を11問収録しています。各問を解説つきで掲載し、全問は演習画面で解けます。公式シラバスの範囲で作成しています。
この章の要点
リストのメソッド・タプルとシーケンス・辞書型・条件式の演算子・内包表記・集合型・del文・ループのテクニック・スタックとキューなどを扱う分野です。全11問(基礎8問・標準3問)を収録しています。
- リストのメソッド
- タプルとシーケンス
- 辞書型
- 条件式の演算子
- 内包表記
- 集合型
- del文
- ループのテクニック
- スタックとキュー
情報源と編集区分
公式範囲を確認し、問題数・難易度・確認点は当サイトが集計・編集。 一次情報確認日: 2026-09-11。
試験概要(公式)確認しておきたいポイント
当サイトの作問時に観察した、取り違えやすい論点です(公式の統計ではありません)。
- append と extend の違い。append は渡した値を1個の要素として足し、extend は要素を1つずつ足す。
- リストとタプルの可変・不変。リストは後から変えられ、タプルは変えられない。スライスはどちらでも使える。
- 辞書のキー取得で角かっこと get の違い。キーが無いとき角かっこは例外になり、get は既定値を返す。
- is と == の混同。is は同じオブジェクトかを見る演算子で、値が等しいかを見る == とは別。
- del 文と pop() の取り違え。公式チュートリアルは del 文について「これは pop() メソッドと違い、値を返しません。del 文はリストからスライスを除去したり、リスト全体を削除することもできます」と述べている。取り除いた値を使いたいかどうかで選ぶ。
- 空の集合の作り方。公式チュートリアルは「空集合を作成するためには set() を使用しなければなりません({} ではなく)。後者は空の辞書を作成します」と述べている。
この章の関連用語
この分野の問題で扱う用語です。意味があいまいなものは、用語集で定義を確認できます。
よくある質問
Q第5章 データ構造は何問収録されていますか?
現在11問を収録しています。内訳は基礎8問・標準3問です。
Q第5章 データ構造の頻出論点は何ですか?
リストのメソッド・タプルとシーケンス・辞書型・条件式の演算子・内包表記・集合型・del文・ループのテクニック・スタックとキューなどが出題対象です(当サイト収録問題に基づく編集部集計)。
Q間違えた問題はどう復習すればいいですか?
誤答した選択肢のどこがずれていたかを解説で確認し、関連用語がある場合は用語集で定義に戻ってから再演習することをおすすめします。
リストの末尾に別のリストの要素を1つずつ足して1本のリストにしたい。用いるメソッドはどれか。
答えと解説を見る
正解は「list.extend(iterable)」である。extend は渡した反復可能オブジェクトの要素を1つずつ取り出して末尾に足すため、結果は1本の平らなリストになる。append は渡した値そのものを1個の要素として末尾に足すので、リストを渡すとリストが要素として入った入れ子のリストになる。insert は指定した位置に1個の要素を挿入するメソッドで、位置を指定する点でも末尾へまとめて足す用途には合わない。copy はリストの浅いコピーを返すメソッドで、要素を足す操作ではない。
リストとタプルの違いとして正しいものはどれか。
答えと解説を見る
正解は「リストは要素を後から変更できるが、タプルは変更できない」である。リストは可変で、append や要素への代入で中身を変えられる。タプルは作ったあとに要素を入れ替えたり足したりできない。どちらもシーケンス型なのでインデックス指定とスライスはどちらでも使えるため、スライスがタプルだけの機能という説明は誤りである。入れ子にできるのもリストだけではなく、タプルの中にリストやタプルを入れることもできる。
辞書から、キーが存在しないときに例外を出さずに既定値を受け取りたい。用いるメソッドはどれか。
答えと解説を見る
正解は「get()」である。get は指定したキーの値を返し、キーが無い場合は例外ではなく既定値を返す。角かっこでキーを指定する書き方だとキーが無いときに例外になるため、存在しない可能性があるキーを扱う場面では get が使われる。items は辞書のキーと値の組を取り出すメソッドで、ループと組み合わせて使う。dict は辞書を作る関数、set は集合を作る関数で、どちらもキーの取り出しに使うものではない。
is と == の違いとして正しいものはどれか。
答えと解説を見る
正解は「is は同じオブジェクトかを調べ、== は値が等しいかを調べる」である。is は2つの名前が同じオブジェクトを指しているかを見る演算子で、== は値として等しいかを見る演算子である。値が等しくても別のオブジェクトであれば is の結果は偽になりうるため、2つを取り違えると意図しない判定になる。is が数値専用、== が文字列専用といった型の制限はどちらにも無い。
既存のリストから条件に合う要素だけを取り出して新しいリストを作る書き方として、公式チュートリアルが紹介しているものはどれか。
答えと解説を見る
正解は「リスト内包表記」である。公式チュートリアルはリスト内包表記を、既存の並びから要素を取り出して新しいリストを作る簡潔な書き方として紹介している。条件を付ければ条件に合う要素だけを残せる。list.filter や list.select というメソッドはリストには無い。加算演算子はリストを連結する演算子で、要素を選び出す用途ではない。
重複を取り除いた要素の集まりを扱いたい。用いる型はどれか。
答えと解説を見る
正解は「集合型」である。集合型は重複のない要素の集まりを扱う型で、set() で作れる。タプルは順序を保つシーケンス型で、同じ値を複数持てるため重複は取り除かれない。辞書は重複しないキーを持つが、選択肢が指しているのはキー以外の値であり、値は重複しうる。文字列は文字の並びで、同じ文字を複数含められる。
リストから位置を指定して要素を取り除きたい。値を受け取る必要はない。用いるものはどれか。
答えと解説を見る
正解は「del 文」である。del は位置を指定して要素を取り除く文で、取り除いた値を返さない。値も受け取りたい場合は list.pop() を使う。list.count は指定した値がいくつ含まれるかを数えるメソッド、list.index は指定した値が最初に現れる位置を返すメソッドで、どちらも要素を取り除かない。list.reverse は並び順を逆にするメソッドで、これも取り除く操作ではない。
並びを昇順に並べ替えた新しい並びを受け取りたい。元の並びは変えたくない。用いるものはどれか。
答えと解説を見る
正解は「sorted()」である。sorted は並べ替えた新しい並びを返す関数で、元の並びは変えない。list.sort はリスト自身を並べ替えるメソッドで、元のリストが変わる。list.reverse はリスト自身の並び順を逆にするメソッドで、これも元のリストが変わり、並べ替えでもない。reversed は逆順に取り出すもので、昇順に並べ替えるものではない。
先に入れたものから取り出すキューとして使うとき、リストより適しているものはどれか。
答えと解説を見る
正解は「collections.deque」である。公式チュートリアルはリストをキューとして使う場面で collections.deque を挙げており、先頭から取り出す popleft が用意されている。タプルは作ったあとに要素を変えられないため、入れたり取り出したりできない。集合型は重複のない要素の集まりで、入れた順序を保たないためキューには向かない。文字列は文字の並びで、要素を出し入れする用途ではない。
リストから指定した値の要素を1つ取り除きたい。位置は分からない。用いるメソッドはどれか。
答えと解説を見る
正解は「list.remove(value)」である。remove は指定した値に最初に一致する要素を取り除くメソッドで、位置を知らなくても使える。list.pop は位置を指定して取り除き、その値を返すメソッドなので、位置が分からない場合には使えない。list.clear はすべての要素を取り除くメソッドである。list.count は指定した値がいくつ含まれるかを数えるメソッドで、取り除かない。
辞書のキーと値の組をまとめて取り出しながらループしたい。用いるメソッドはどれか。
答えと解説を見る
正解は「items()」である。items は辞書のキーと値の組を取り出すメソッドで、ループと組み合わせて両方を同時に受け取れる。get は1つのキーに対する値を返すメソッドで、全体を回す用途ではない。dict は辞書を作る関数、set は集合を作る関数で、どちらも組を取り出すものではない。