第3章_リストの操作
今回の項目では、リストの操作について出題されます。
本試験の主教材である「Python3エンジニア認定基礎試験問題集」では第3章(P39~P41)の4問の内容です。
練習問題 1
次のコードを実行した結果を考えてみましょう。
data = [[1, 2], [3, 4, 5]]
print(data[1][2])
答えはコチラをクリック!
答え:5
ポイント
入れ子のリスト要素の参照は、インデックスを〇回指定する
インデックスを2回指定する
dataの1番目は[1, 2]であるため、data[1] = [3, 4, 5]
data[1]の2番目は5であるため、data[1][2] = 5
練習問題 2
次のコードを実行した結果を考えてみましょう。
data = [1, 2, 3]
print(data.pop())
答えはコチラをクリック!
答え:3
ポイント
.pop()はリストの〇〇を取り出す
リストの末尾を取り出す
data = [1, 2, 3]であるため、data.pop()は末尾である 3 を返し、3 をdataから消去する。
練習問題 3
次のコードを実行した結果を考えてみましょう。
data = [1, 2, 3]
print(data.pop(0))
答えはコチラをクリック!
答え:1
ポイント
.pop(0)はリストの〇〇を取り出す
リストの先頭を取り出す
data = [1, 2, 3]であるため、data.pop()は先頭である 1 を返し、1 をdataから消去する。
練習問題 4
次のコードを実行した結果を考えてみましょう。
print([(i, j) for i in [1, 2] for j in [1, 2, 3] if i ==j])
答えはコチラをクリック!
答え:[(1, 1), (2, 2)]
ポイント
リストの角括弧内で、forを使って記述したものをリスト〇〇という
リスト内包という
コードは以下のコードと全く同じ意味である。したがって、i と j が一致するとき、すなわち[1 , 2]の要素と[1, 2, 3]の要素が一致するときの値を表示する。
data = []
for i in [1, 2]:
for j in [1, 2, 3]:
if i == j:
data.append((i, j))
print(data)
確認問題 1
次のコードを実行した結果「2 3」が表示される時、空欄①に入るものとして正しいものを選んでください
data = [[1, 2], [3, 4, 5]]
print(①)
1、data[0][0], data[1][1]
2、data[0][1], data[1][0]
3、data[1][0], data[0][1]
4、data[1][1], data[1][0]
答えはコチラをクリック!
答え:2
data[0] = [1, 2]で、data[1] = [3, 4, 5]
よって、2を取り出すときはdata[0][1]、3を取り出すときはdata[1][0]となる
確認問題 2
次のコードを実行した結果[4, 3, 2, 1]が表示されるとき、①に当てはまる記述として適切なものを選択しましょう
1、data.append(stack.pop(0))
2、data.append(data.pop(0))
3、data.append(stack.pop())
4、data.append(data.pop())
stack = [1, 2, 3, 4]
data = []
while stack:
①
print(data)
答えはコチラをクリック!
答え:3
stack.pop()でstackの末尾を取り出し、その値をstackから消去する。
取り出した値をdata.apped(stack.pop())とすることで、dataの末尾に追加するため、dataにはstackの末尾から順番に値が格納される。
確認問題 3
次のコードを実行した結果として、[2, 3, 4]が表示されるとき、空欄➀、➁に入る記述として正しいものを選択してください。
1、① data.append(4) ➁ data.pop()
2、①data.append(4) ➁ data.pop(0)
3、①data.append(4) ➁ data.pop(1)
4、① data.pop() ➁ data.append(4)
data = [1, 2, 3]
①
➁
print(data)
答えはコチラをクリック!
答え:2
append(4) でdataの末尾に 4 を追加する。この時点で、data は [1, 2, 3, 4] となる。
pop(0) はインデックス0(最初の要素)を削除し、その値を返す。したがって1 が削除され、data は [2, 3, 4] となる。
確認問題 4
次のコードと同じ表示結果を出力する記述として正しいものを選択してください。
1、print([(i, j) for i in [1, 2] for j in [1, 2, 3] if i !=j])
2、print([(j, i) for i in [1, 2] for j in [1, 2, 3] if i !=j])
3、print([(i, j) for j in [1, 2 ,3] for i in [1, 2] if i !=j])
4、print([(i, j) for j in [1, 2, 3] for i in [1, 2] if i !=j])
data = []
for i in [1, 2]:
for j in [1, 2, 3]:
if i != j:
data.append((i, j))
print(data)
答えはコチラをクリック!
答え:1
1以外の選択しは i, j の順番が異なる。2は、(j, i)としているので、リストに格納されるタプルの順序が異なる。3, 4 はどちらもループの順序が異なる。
次回は…
次回は「008_Pythonエンジニア認定基礎試験4-1~5」です。
判定と繰り返しの操作方法について学びましょう!
参考資料一覧:Python3エンジニア認定[基礎試験]問題集
https://www.pythonic-exam.com
https://data-engineer-japan.com
https://mynavi-agent.jp
https://python-basic.com
https://www.tokai-bs.co.jp
https://freelance.techcareer.jp/articles/wp/skills/python/detail/550/
https://pythonzen-pep8-exam.jp/