Python3エンジニア認定基礎試験 ② リストの操作

Pythonで最もよく使うデータ構造であるリストを扱う分野です。角括弧とカンマによる定義、インデックスによる参照(先頭は0、末尾は-1)、スライスによる範囲の切り出し、append()やpop()を使った要素の追加・削除が中心テーマです。リストをスタック(LIFO)やキュー(FIFO)として使う方法、入れ子(ネスト)構造、リスト内包表記まで幅広く問われます。存在しないメソッド呼び出しで起きるAttributeErrorなど、エラーの種類とセットで覚えると得点しやすい分野です。出題数44問。

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

クイズモードで挑戦 →

20Pythonのリストにおいて複数の値を記述する際に使用する記号の組み合わせとして正しいものはどれですか。

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

正解:B角括弧「[]」とカンマ

リストは角括弧とカンマを使って記述するとテキストに明記されています。

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

21リストの要素として扱うことができるデータの種類として、テキストに明記されているものの組み合わせはどれですか。

  1. A整数・複素数・文字列
  2. B整数・浮動小数点数・文字列
  3. C整数・浮動小数点数・辞書
  4. D論理値・浮動小数点数・文字列
正解と解説を見る

正解:B整数・浮動小数点数・文字列

リストが扱えるデータの種類として整数、浮動小数点数、文字列などが挙げられています。

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

22リストの先頭の要素を参照するために使用するインデックスはどれですか。

  1. A1
  2. B0
  3. C-1
  4. D要素数
正解と解説を見る

正解:B0

リストの先頭のインデックスは0を使用します。

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

23リストの末尾の要素を参照するために使用できる負のインデックスはどれですか。

  1. A-1
  2. B0
  3. C-2
  4. D要素数
正解と解説を見る

正解:A-1

末尾のインデックスとして-1を使用することができます。

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

24リストの末尾の要素を参照するために「要素数」を用いて指定する場合の正しいインデックスはどれですか。

  1. A要素数
  2. B要素数 + 1
  3. C要素数 - 1
  4. D要素数 + 2
正解と解説を見る

正解:C要素数 - 1

末尾のインデックスは「要素数 - 1」または-1を使用します。

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

25リストと文字列の共通点としてテキストに記載されている特徴はどれですか。

  1. Aインデックスで要素を更新できる
  2. Bappend()メソッドが使える
  3. Cインデックスで要素を参照できる
  4. Dlength属性を持っている
正解と解説を見る

正解:Cインデックスで要素を参照できる

リストは文字列と同じくインデックスで要素を参照できます。

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

26リストが文字列と異なる点として、リストの特徴として正しいものはどれですか。

  1. A長さを求めるのにlen()関数が使えない
  2. Bインデックスで要素の更新が可能である
  3. C角括弧ではなく丸括弧を使う
  4. D複数の値をまとめて扱うことができない
正解と解説を見る

正解:Bインデックスで要素の更新が可能である

文字列とは異なりリストはインデックスで要素を更新することが可能です。

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

27リストのスライス範囲を指定する際の「開始位置」と「終了位置」の正しい区切り記号はどれですか。

  1. Aカンマ「,」
  2. Bセミコロン「;」
  3. Cコロン「:」
  4. Dハイフン「-」
正解と解説を見る

正解:Cコロン「:」

リストのスライス範囲は「開始位置:終了位置」のように記述します。

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

28リストのスライス操作において開始位置を省略した場合の動作として正しいものはどれですか。

  1. A先頭からになる
  2. B末尾までになる
  3. Cエラー(AttributeError)になる
  4. Dインデックス1からになる
正解と解説を見る

正解:A先頭からになる

スライス操作で開始位置を省略すると先頭からになります。

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

29リストのスライス操作において終了位置を省略した場合の動作として正しいものはどれですか。

  1. A先頭からになる
  2. Bエラー(TypeError)になる
  3. C末尾までになる
  4. D末尾の1つ手前までになる
正解と解説を見る

正解:C末尾までになる

スライス操作で終了位置を省略すると末尾までになります。

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

30data = [1, 2, 3, 4] に対して print(data[:2]) を実行したときの出力結果はどれですか。

  1. A[1, 2]
  2. B[1, 2, 3]
  3. C[3, 4]
  4. D[2, 3, 4]
正解と解説を見る

正解:A[1, 2]

data[:2]は先頭からインデックス2の手前までの範囲を切り取るため[1, 2]になります。

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

31data = [1, 2, 3, 4] に対して print(data[3:]) を実行したときの出力結果はどれですか。

  1. A[3, 4]
  2. B[4]
  3. C[1, 2, 3]
  4. D[]
正解と解説を見る

正解:B[4]

data[3:]はインデックス3から末尾までの範囲を切り取るため[4]になります。

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

32data = [1, 2, 3, 4] に対して print(data[:2], data[3:]) を実行したときの正しい出力結果はどれですか。

  1. A[1, 2, 3] [4]
  2. B[1, 2] [3, 4]
  3. C[1, 2, 3] [3, 4]
  4. D[1, 2] [4]
正解と解説を見る

正解:D[1, 2] [4]

data[:2]は[1, 2]になりdata[3:]は[4]になるためそれらが順に出力されます。

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

33リストの末尾に値を追加するために使用する正しいメソッドはどれですか。

  1. Aadd()
  2. Bappend()
  3. Cpush()
  4. Dextend()
正解と解説を見る

正解:Bappend()

リストの末尾に値を追加するにはappend()メソッドを使用します。

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

34リストに対して存在しないadd()メソッドを呼び出して要素を追加しようとした場合、発生するエラーはどれですか。

  1. ANameError
  2. BTypeError
  3. CAttributeError
  4. DIndexError
正解と解説を見る

正解:CAttributeError

AttributeErrorは存在しないデータの名前を参照したときに発生するエラーです。

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

35リストに対して存在しないpush()メソッドを呼び出して要素を追加しようとした場合、発生するエラーはどれですか。

  1. ANameError
  2. BTypeError
  3. CIndexError
  4. DAttributeError
正解と解説を見る

正解:DAttributeError

存在しないメソッド呼び出しであるためAttributeErrorが発生します。

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

36data = [1, 2] に対し、リストではない整数「3」を data += 3 と記述して追加しようとした場合、発生するエラーはどれですか。

  1. AAttributeError
  2. BTypeError
  3. CNameError
  4. DIndexError
正解と解説を見る

正解:BTypeError

リスト名 += [値] という形式ではなくリストではない3を追加するとTypeErrorになります。

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

37data = [1, 2] の末尾に要素「3」を追加する記述として、適切に動作するものの組み合わせはどれですか。

  1. Adata.add(3) と data += 3
  2. Bdata.push(3) と data += [3]
  3. Cdata.append(3) と data += [3]
  4. Ddata.append(3) と data += 3
正解と解説を見る

正解:Cdata.append(3) と data += [3]

append()メソッドまたは「リスト名 += [値]」のどちらの記述でも要素を追加できます。

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

38オブジェクトの長さを取得する組み込みの関数として正しいものはどれですか。

  1. Acount()
  2. Blength()
  3. Clen()
  4. Dsize()
正解と解説を見る

正解:Clen()

オブジェクトの長さは組み込み関数であるlen()関数で取得できます。

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

39len()関数にリストを引き渡した場合と文字列を引き渡した場合にそれぞれ返される値の組み合わせとして正しいものはどれですか。

  1. Aリストの場合は文字の数、文字列の場合は要素の数
  2. Bリストの場合は要素の数、文字列の場合は文字の数
  3. Cどちらの場合もオブジェクトのバイト数
  4. Dどちらの場合も要素のインデックス最大値
正解と解説を見る

正解:Bリストの場合は要素の数、文字列の場合は文字の数

len()関数はリストの場合は要素の数を返し文字列の場合は文字の数を返します。

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

40リストの長さを求めようとして、存在しない組み込み関数 count(data) を実行したときに発生するエラーはどれですか。

  1. AAttributeError
  2. BTypeError
  3. CNameError
  4. DIndexError
正解と解説を見る

正解:CNameError

NameErrorは存在しない関数などを参照したときに発生するエラーです。

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

41リストの長さを求めようとして、存在しない組み込み関数 length(data) を実行したときに発生するエラーはどれですか。

  1. AAttributeError
  2. BNameError
  3. CTypeError
  4. DIndexError
正解と解説を見る

正解:BNameError

length()という組み込み関数は存在しないためNameErrorが発生します。

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

42リストdataに対して data.length という属性を参照して長さを得ようとした場合、どうなりますか。

  1. ANameErrorが発生する
  2. BTypeErrorが発生する
  3. C正しく要素数が返される
  4. DAttributeErrorが発生する
正解と解説を見る

正解:DAttributeErrorが発生する

リストにはlengthという属性は存在しないためAttributeErrorになります。

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

43リストの要素としてさらにリストを持つ構造のことを何と呼びますか。

  1. Aスタック
  2. Bキュー
  3. C内包表記
  4. D入れ子(ネスト)
正解と解説を見る

正解:D入れ子(ネスト)

リストの要素としてリストを持つことを入れ子(ネスト)といいます。

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

44リスト [[1, 2], [3, 4]] の長さを len() 関数で取得したときの結果として正しいものはどれですか。

  1. A4
  2. B1
  3. C0
  4. D2
正解と解説を見る

正解:D2

このリストの要素は[1, 2]と[3, 4]の2個なので長さは2になります。

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

45リスト [[1, 2, 3, 4]] の長さを len() 関数で取得したときの結果として正しいものはどれですか。

  1. A1
  2. B4
  3. C2
  4. D0
正解と解説を見る

正解:A1

このリストの要素は[1, 2, 3, 4]という1個のリストであるため長さは1になります。

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

46リストの要素として [[1, 2], [3, 4, 5]] のように異なる長さのリストを要素にすることは可能ですか。

  1. A可能である
  2. B不可能でありTypeErrorになる
  3. C不可能でありValueErrorになる
  4. D多次元リストの場合のみ可能である
正解と解説を見る

正解:A可能である

リストは任意のオブジェクトを持てるため異なる長さのリストも要素にできます。

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

47data = [[1, 2], [3, 4]] から、値「1」を正しく参照している記述はどれですか。

  1. Adata[1][1]
  2. Bdata[0][0]
  3. Cdata[0][1]
  4. Ddata[1][0]
正解と解説を見る

正解:Bdata[0][0]

先頭の要素[1, 2]の先頭の値を参照するためdata[0][0]となります。

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

48data = [[1, 2], [3, 4]] から、値「4」を正しく参照している記述はどれですか。

  1. Adata[1][1]
  2. Bdata[0][0]
  3. Cdata[0][1]
  4. Ddata[1][0]
正解と解説を見る

正解:Adata[1][1]

2番目の要素[3, 4]の2番目の値を参照するためdata[1][1]となります。

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

49data = [[1, 2], [3, 4]] に対し、data[0][1] と data[1][0] を順に出力した結果として正しいものはどれですか。

  1. A2 3
  2. B1 4
  3. C3 2
  4. D4 1
正解と解説を見る

正解:A2 3

data[0][1]は2を指しdata[1][0]は3を指すため出力結果は2 3になります。

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

50data = [[1, 2], [3, 4]] に対し、data[1][1] と data[0][0] を順に出力した結果として正しいものはどれですか。

  1. A1 4
  2. B2 3
  3. C4 1
  4. D3 2
正解と解説を見る

正解:C4 1

data[1][1]は4を指しdata[0][0]は1を指すため出力結果は4 1になります。

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

51「要素を挿入すると末尾に追加され、取り出すときも末尾から削除される」という特徴を持つデータ構造を何と呼びますか。

  1. Aスタック
  2. Bキュー
  3. CFIFO
  4. D両端キュー
正解と解説を見る

正解:Aスタック

取り出すときも末尾から削除される構造をスタックと呼びます。

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

52スタックのような「後入れ先出し方式」のデータ構造をアルファベット4文字でどのように表記しますか。

  1. ALIFO
  2. BFIFO
  3. COIFO
  4. DLOFI
正解と解説を見る

正解:ALIFO

後入れ先出し方式(last-in, first-out)はLIFOと表記します。

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

53リストをスタックとして扱うために使用する2つのメソッドの組み合わせとして正しいものはどれですか。

  1. Aappend() と pop(0)
  2. Badd() と pop()
  3. Cpush() と pop()
  4. Dappend() と pop()
正解と解説を見る

正解:Dappend() と pop()

append()で末尾に追加しpop()で末尾の要素を削除することでスタックとして扱えます。

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

54リストのpop()メソッドに引数を指定せずに実行した場合の動作として正しいものはどれですか。

  1. A最後の要素を削除して返す
  2. B先頭の要素を削除して返す
  3. Cリストの全要素を削除する
  4. Dエラー(TypeError)になる
正解と解説を見る

正解:A最後の要素を削除して返す

pop()はリストの最後の要素を削除して返します。

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

55要素が存在しない空のリストに対してpop()メソッドを実行した場合に発生するエラーはどれですか。

  1. ATypeError
  2. BIndexError
  3. CAttributeError
  4. DValueError
正解と解説を見る

正解:BIndexError

IndexErrorは要素が存在しないインデックスを指定したとき(空のpop含む)に発生します。

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

56「要素を挿入すると末尾に追加され、取り出すときは先頭から削除される」という特徴を持つデータ構造を何と呼びますか。

  1. Aスタック
  2. BLIFO
  3. Cキュー
  4. Dネスト
正解と解説を見る

正解:Cキュー

先頭から削除されるデータ構造をキューと呼びます。

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

57キューのような「先入れ先出し方式」のデータ構造をアルファベット4文字でどのように表記しますか。

  1. ALIFO
  2. BFILO
  3. CLOFI
  4. DFIFO
正解と解説を見る

正解:DFIFO

先入れ先出し方式(first-in, first-out)はFIFOと表記します。

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

58リストをキューとして扱うために使用するメソッドおよび引数の組み合わせとして正しいものはどれですか。

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

正解:Aappend() と pop(0)

append()で末尾に追加しpop(0)で先頭のインデックスの要素を削除します。

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

59data = [1, 2] に対し、data.append(3) を実行した後に data.pop(0) を実行すると、data の状態はどうなりますか。

  1. A[1, 2]
  2. B[1, 3]
  3. C[3]
  4. D[2, 3]
正解と解説を見る

正解:D[2, 3]

3が末尾に追加されて[1, 2, 3]になり先頭の1が削除されるため[2, 3]になります。

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

60実務でキューを扱う場合に、リストよりも効率的なデータ構造としてテキストで紹介されているものはどれですか。

  1. Acollections.queue
  2. Bstack.LIFO
  3. Clist.queue
  4. Dcollections.deque(両端キュー)
正解と解説を見る

正解:Dcollections.deque(両端キュー)

実務でキューを使う場合はより効率的な両端キュー(collections.deque)が使われます。

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

61リストの角括弧内でforを使って記述し、for文による複合的な処理を1つの式で簡潔に書く方法を何と呼びますか。

  1. Aネスト
  2. Bスタック操作
  3. Cスライス処理
  4. Dリスト内包
正解と解説を見る

正解:Dリスト内包

リストの角括弧内でforを使って記述したものをリスト内包表記と呼びます。

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

62内包表記でリストを作成する際の基本的な書式として正しいものはどれですか。

  1. Afor 変数 in リストなど: 式
  2. B式 while 条件
  3. C式 for 変数 in リストなど
  4. D変数 for 式 in リストなど
正解と解説を見る

正解:C式 for 変数 in リストなど

内包表記の書式は「式 for 変数 in リストなど」となります。

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

63複数のfor文やif文を組み合わせた複雑なリスト内包表記を組み立てる際、forやifを記述する順番のルールとして正しいものはどれですか。

  1. A元のfor文とは逆の順番で記述する
  2. Bif文を必ず最初に記述する
  3. Cfor文の順番は内側から外側へ記述する
  4. D分解した元のfor文と同じ順番どおりに記述する
正解と解説を見る

正解:D分解した元のfor文と同じ順番どおりに記述する

リスト内包表記では元のfor文とif文が順番どおりで同じ記述になります。

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