Python3エンジニア認定基礎試験 ⑤ その他コレクションの操作

リスト以外のコレクション型を幅広く扱う分野です。両端キューcollections.deque、要素を変更できないタプル、重複を許さず順序を持たない集合(set)、キーと値を対応づけるディクショナリ(辞書)が主なテーマです。タプルはカンマが本質であることや要素1つのタプルの書き方、setの差集合など集合演算、ディクショナリ内包表記といった細かな仕様が問われます。それぞれの型の性質(変更可否・順序・重複)を対比して整理し、用途に応じた使い分けを理解することが得点のコツです。出題数35問。

この分野の問題35問を、選択肢・正解・解説つきで掲載しています。まず自分で解答を考えてから「正解と解説を見る」を開いて答え合わせをしてください。

クイズモードで挑戦 →

151collections.dequeはどのようなデータ構造として説明されていますか。

  1. A単方向リスト
  2. B両端キュー
  3. C固定長配列
  4. D連想配列
正解と解説を見る

正解:B両端キュー

collections.dequeは両端キューと呼ばれる種類のキューです。

この問題の解説ページを開く →

152collections.dequeにおいて先頭に要素を追加するメソッドはどれですか。

  1. Aappend()
  2. Bappendleft()
  3. Cpopleft()
  4. Dpush()
正解と解説を見る

正解:Bappendleft()

collections.dequeの先頭に要素を追加する場合はappendleft()メソッドを使用します。

この問題の解説ページを開く →

153collections.dequeにおいて末尾から要素を取り出すメソッドはどれですか。

  1. Apop()
  2. Bpopleft()
  3. Cremove()
  4. Ddelete()
正解と解説を見る

正解:Apop()

collections.dequeの末尾から要素を取り出す場合はpop()メソッドを使用します。

この問題の解説ページを開く →

154次のコードを実行した結果として正しいものはどれですか。\nfrom collections import deque\nqueue = deque(['apple', 'banana'])\nqueue.append('lemon')\nqueue.popleft()\nprint(queue)

  1. Adeque(['apple', 'banana'])
  2. Bdeque(['banana', 'lemon'])
  3. Cdeque(['lemon'])
  4. Ddeque(['apple', 'banana', 'lemon'])
正解と解説を見る

正解:Bdeque(['banana', 'lemon'])

appendで末尾にlemonが追加されpopleftで先頭のappleが取り出されるため結果はbananaとlemonになります。

この問題の解説ページを開く →

155次のコードを実行した後にqueueに残る要素の組み合わせとして正しいものはどれですか。\nfrom collections import deque\nqueue = deque(['apple', 'banana'])\nqueue.append('lemon')\nqueue.popleft()\nqueue.append('mango')\nqueue.popleft()

  1. A['apple', 'banana']
  2. B['lemon', 'mango']
  3. C['banana', 'lemon']
  4. D['apple', 'mango']
正解と解説を見る

正解:B['lemon', 'mango']

要素の追加と左端からの取り出しを2回繰り返すことでappleとbananaが消えlemonとmangoが残ります。

この問題の解説ページを開く →

156タプルを構成する上で最も本質的な要素(記号)はどれですか。

  1. Aカンマ「,」
  2. B括弧「()」
  3. C波括弧「{}」
  4. D角括弧「[]」
正解と解説を見る

正解:Aカンマ「,」

実際にはタプルを構成するのは括弧ではなくカンマ「,」です。

この問題の解説ページを開く →

157要素が1つだけのタプルを定義する正しい表記はどれですか。

  1. Asample = ("spam")
  2. Bsample = ["spam"]
  3. Csample = "spam",
  4. Dsample = tuple("spam")
正解と解説を見る

正解:Csample = "spam",

要素が1つの場合は末尾にカンマを書くことでタプルとして定義されます。

この問題の解説ページを開く →

158次の記述のうちタプルが生成されないものはどれですか。

  1. Asample = "spam", "ham", "eggs"
  2. Bsample = ("spam", "ham", "eggs")
  3. Csample = tuple("spam", "ham", "eggs")
  4. Dsample = "spam",
正解と解説を見る

正解:Csample = tuple("spam", "ham", "eggs")

tuple()関数を使って定義する場合引数はリストなどの反復可能体である必要があります。

この問題の解説ページを開く →

159tuple()関数を使って複数の要素を持つタプルを正しく定義しているものはどれですか。

  1. Asample = tuple(["spam", "ham", "eggs"])
  2. Bsample = tuple("spam", "ham", "eggs")
  3. Csample = tuple("spam" "ham" "eggs")
  4. Dsample = tuple({"spam" "ham"})
正解と解説を見る

正解:Asample = tuple(["spam", "ham", "eggs"])

tuple()の引数にはリストなどの反復可能体を与える必要があります。

この問題の解説ページを開く →

160リストとタプルの共通の性質として誤っているものはどれですか。

  1. A異なるデータ型の要素を格納できる
  2. B定義した後に要素を追加・変更する方法はどちらも同じである
  3. C格納されている要素の数はlen()関数で取得できる
  4. D複数の値を扱うためのデータ型である
正解と解説を見る

正解:B定義した後に要素を追加・変更する方法はどちらも同じである

リストは要素の追加や変更が可能ですがタプルはいったん定義すると変更できません。

この問題の解説ページを開く →

161タプルの性質について正しいものはどれですか。

  1. Aappend()メソッドで要素を追加できる
  2. Badd()メソッドで要素を追加できる
  3. Cいったん定義すると後から要素を追加できない
  4. Dリストよりも要素数の取得が遅い
正解と解説を見る

正解:Cいったん定義すると後から要素を追加できない

タプルの場合はいったん定義すると後から要素を追加できません。

この問題の解説ページを開く →

162set(集合)の性質として誤っているものはどれですか。

  1. A重複する要素を持たない
  2. B2つのset同士で和集合や差集合を演算できる
  3. C要素の順序は追加された順で保持される
  4. Dadd()メソッドで要素を追加できる
正解と解説を見る

正解:C要素の順序は追加された順で保持される

setは追加した順序を保持しません。

この問題の解説ページを開く →

163setに要素を追加するために使用するメソッドはどれですか。

  1. Aappend()
  2. Binsert()
  3. Cadd()
  4. Dpush()
正解と解説を見る

正解:Cadd()

要素の追加についてリストではappend()を使いsetではadd()メソッドを使います。

この問題の解説ページを開く →

164set()関数の引数として指定できるものはどれですか。

  1. Aリストなどの反復可能体
  2. Bカンマ区切りの複数の文字列引数
  3. Cディクショナリのincludesメソッド
  4. D単一の数値のみ
正解と解説を見る

正解:Aリストなどの反復可能体

set()関数の引数はリストやタプルといった反復可能体です。

この問題の解説ページを開く →

165setにおいて要素を取り出すときの順序について正しい説明はどれですか。

  1. A必ず追加された順に組み立てられる
  2. Bアルファベット順にソートされる
  3. C要素のデータ型によって完全に固定される
  4. D実行のたびに同じになるとは限らない
正解と解説を見る

正解:D実行のたびに同じになるとは限らない

要素を取り出すときの順序は実行のたびに同じになるとは限りません。

この問題の解説ページを開く →

1662つのset「s1」から「s2」にも含まれる要素を取り除いた集合を何と呼びますか。

  1. A和集合
  2. B積集合
  3. C対称差
  4. D差集合
正解と解説を見る

正解:D差集合

ある集合から別の集合に含まれる要素を取り除いた集合を差集合と呼びます。

この問題の解説ページを開く →

167Pythonの集合演算において差集合を求めるために使用する演算子はどれですか。

  1. A-
  2. B+
  3. C&
  4. D^
正解と解説を見る

正解:A-

Pythonでは差集合をマイナス演算子「-」を使って求めます。

この問題の解説ページを開く →

168s1 = set("abracadabra")、s2 = set("alacazam") のとき、s1 - s2 の演算結果に含まれる要素はどれですか。

  1. A'a' 'c'
  2. B'l' 'm' 'z'
  3. C'r' 'b' 'd'
  4. D'a' 'b' 'c' 'd'
正解と解説を見る

正解:C'r' 'b' 'd'

s1の要素からs2に含まれる要素(aやcなど)を取り除いた差集合にはr、b、dが含まれます。

この問題の解説ページを開く →

169差集合を演算子ではなくメソッドを使って求める場合に使用するメソッド名はどれですか。

  1. Aunion()
  2. Bdifference()
  3. Cintersection()
  4. Dsymmetric_difference()
正解と解説を見る

正解:Bdifference()

差集合を求めるメソッドはdifference()です。

この問題の解説ページを開く →

170和集合を求めるために使用するメソッド名はどれですか。

  1. Adifference()
  2. Bunion()
  3. Cintersection()
  4. Dsymmetric_difference()
正解と解説を見る

正解:Bunion()

和集合を求めるメソッドはunion()です。

この問題の解説ページを開く →

171Pythonの集合演算において積集合(共通する要素の集合)を求めるために使用する演算子はどれですか。

  1. A|
  2. B&
  3. C^
  4. D-
正解と解説を見る

正解:B&

積集合はアンド演算子「&」を使って求めます。

この問題の解説ページを開く →

172積集合を演算子ではなくメソッドを使って求める場合に使用するメソッド名はどれですか。

  1. Aunion()
  2. Bintersection()
  3. Cdifference()
  4. Dsymmetric_difference()
正解と解説を見る

正解:Bintersection()

積集合を求めるメソッドはintersection()です。

この問題の解説ページを開く →

173対称差を求める場合に使用するメソッド名はどれですか。

  1. Aintersection()
  2. Bunion()
  3. Cdifference()
  4. Dsymmetric_difference()
正解と解説を見る

正解:Dsymmetric_difference()

対称差を求めるメソッドはsymmetric_difference()です。

この問題の解説ページを開く →

174ディクショナリのキーとして指定できないデータ型はどれですか。

  1. A文字列
  2. B数値
  3. Cリスト
  4. Dタプル
正解と解説を見る

正解:Cリスト

ディクショナリのキーに指定できるのは不変体の値のみであり可変体であるリストは指定できません。

この問題の解説ページを開く →

175ディクショナリのキーに指定できる性質として正しい説明はどれですか。

  1. A不変体の値のみ指定できる
  2. B可変体の値のみ指定できる
  3. Cリストや辞書なら何でも指定できる
  4. D文字列型以外は指定できない
正解と解説を見る

正解:A不変体の値のみ指定できる

ディクショナリのキーに指定できるのは文字列や数値といった不変体の値のみです。

この問題の解説ページを開く →

176ディクショナリに要素を追加または値を変更する際の正しい書式はどれですか。

  1. Aディクショナリ名[キー] = 値
  2. Bディクショナリ名.add(キー, 値)
  3. Cdel ディクショナリ名[キー]
  4. Dディクショナリ名(キー: 値)
正解と解説を見る

正解:Aディクショナリ名[キー] = 値

ディクショナリに要素を追加・変更するには「ディクショナリ名[キー] = 値」と記述します。

この問題の解説ページを開く →

177ディクショナリから特定のキーを持つ要素を削除するために使用する文はどれですか。

  1. Adel文
  2. Bremove文
  3. Cpop文
  4. Dclear文
正解と解説を見る

正解:Adel文

要素を削除するにはdel文を使用して削除したいキーを指定します。

この問題の解説ページを開く →

178次のコードを実行した結果として正しいものはどれですか。\nprice = {'apple': 120}\nprice['peach'] = 200\ndel price['apple']\nprint(price)

  1. A{'apple': 120}
  2. B{}
  3. C{'apple': 120, 'peach': 200}
  4. D{'peach': 200}
正解と解説を見る

正解:D{'peach': 200}

appleが削除されpeachが追加されるため結果は {'peach': 200} となります。

この問題の解説ページを開く →

179ディクショナリに対して特定のキーが含まれているか判定するイン演算子の記述として誤っているものはどれですか。

  1. A"apple" in price
  2. B"apple" in price.keys()
  3. C"apple" in list(price)
  4. Dprice.includes("apple")
正解と解説を見る

正解:Dprice.includes("apple")

ディクショナリのメソッドにincludes()はありません。

この問題の解説ページを開く →

180list()関数の引数にディクショナリ(例: price)を与えたとき生成されるリストの要素は何ですか。

  1. Aディクショナリのキー
  2. Bディクショナリの値
  3. Cキーと値のタプルのペア
  4. D空のリスト
正解と解説を見る

正解:Aディクショナリのキー

list()関数の引数にディクショナリを与えるとキーを要素とするリストが生成されます。

この問題の解説ページを開く →

181ディクショナリを1行だけで作成する高度な記法を何と呼びますか。

  1. Aラムダ表記
  2. Bドキュメンテーション表記
  3. Cコレクション表記
  4. D内包表記
正解と解説を見る

正解:D内包表記

ディクショナリやリストを1行だけで作成する方法を内包表記といいます。

この問題の解説ページを開く →

182内包表記でディクショナリを定義する際の正しい基本的な書式はどれですか。

  1. A[キーの式: 値の式 for 変数 in 反復可能体]
  2. B{for 変数 in 反復可能体: キーの式: 値の式}
  3. C{キーの式: 値の式 for 変数 in 反復可能体}
  4. D[for 変数 in 反復可能体: キーの式: 値の式]
正解と解説を見る

正解:C{キーの式: 値の式 for 変数 in 反復可能体}

内包表記でディクショナリを定義する書式は波括弧内に「キーの式: 値の式 for 変数 in 反復可能体」とします。

この問題の解説ページを開く →

183次のコードを実行した結果として正しいものはどれですか。\nprint({x: x**3 for x in (1, 3, 6)})

  1. A{1: 1, 3: 9, 6: 18}
  2. B{1: 3, 3: 9, 6: 18}
  3. C{1: 1, 27: 3, 216: 6}
  4. D{1: 1, 3: 27, 6: 216}
正解と解説を見る

正解:D{1: 1, 3: 27, 6: 216}

各要素xをキーとしその3乗(x**3)を値とするディクショナリが生成されます。

この問題の解説ページを開く →

184ディクショナリの内包表記においてキーの部分に記述できるものとして正しい説明はどれですか。

  1. A必ず単一の変数でなければならない
  2. B文字列の定数しか指定できない
  3. Cリスト型を配置しなければならない
  4. D単一の変数だけでなく計算式も指定できる
正解と解説を見る

正解:D単一の変数だけでなく計算式も指定できる

ディクショナリを内包表記にした場合キーは単一の変数だけでなく計算式にもできます。

この問題の解説ページを開く →

185次のリスト内包表記を実行した結果として正しいものはどれですか。\nsample_list = [i for i in range(1, 11)]\nprint(sample_list)

  1. A[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
  2. B[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  3. C[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  4. D[1, 11]
正解と解説を見る

正解:C[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

range(1, 11)は1から10までの連続した整数を生成するためその要素を持ったリストになります。

この問題の解説ページを開く →
Python3エンジニア認定基礎試験の全分野一覧へ戻る