2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Python3エンジニア基礎試験_公式問題集の復習①

Last updated at Posted at 2023-06-11

はじめに

「徹底攻略Python 3 エンジニア認定[基礎試験]問題集」の復習として記載しています。

リストの操作

list.py
data = [1, 2, 3, 4]
print(data[:2], data[3:])
# [1, 2] [4]

● 解説
リストのスライスに関する問題。
リストのスライス範囲は、「開始位置:終了位置」のように記述します。
開始位置を省略すると先頭からになり、終了位置を省略すると末尾までになります。

最初の引数の data[:2]は、インデックス0から1の要素(2未満)が取得されます。
結果として [1, 2] が表示されます。
2つ目の引数の data[3:]は、リスト data のインデックス3から最後の要素までを
スライスしています。コロンの後に何も指定しない場合、スライスはリストの末尾まで続きます。
インデックス3から最後の要素までが取得されます。結果として、 [4] が表示されます。

list.py
data = [1, 2]
data.append(3)
print(data)
# [1, 2, 3]

● 解説
リストの末尾に値を追加するには、append()メソッドを使います。
このようにドット「.」を使って書く関数をメソッドといいます。

書式 リストに要素を追加する①
リスト名.append(値)

書式 リストに要素を追加する②
リスト名 += 「値」

list.py
下記の記述は正しいか
[[1, 2, 3, 4]]の長さは4である
# 誤り。長さは1である。

● 解説
リストの入れ子に関する問題です。
リストの要素として「別のリスト」を持つことを入れ子にするといいます。
リストの入れ子はネストと呼ばれることもあります。

[例]ネストの作成①
[[1, 2], [3, 4]]

[例]ネストの作成②
[[1, 2, 3, 4]]

list.py
stack = [1, 2, 3, 4]
data = []
while stack:
    data.append(stack.pop())
print(data)
# [4, 3, 2, 1]

● 解説
リストをスタックとして使う方法についての問題です。
スタックは、複数の値を扱えるデータ構造の一つです。リストと異なるのは、
「要素を挿入すると末尾に追加され、取り出すときも末尾から削除される」という点です。

stack.pop()はstackの最後の要素を削除し、data.append()はその要素をdataに追加します。

list.py
data = [1, 2]
data.append(3)
data.pop(0)
print(data)
# [2, 3]

● 解説
リストをキューとして使う方法についての問題です。
キューは、複数の値を扱えるデータ構造の一つです。リストと異なるのは、
「要素を挿入すると末尾に追加され、取り出すときは先頭から削除される」という点です。

リストをキューとして扱うには、append()とpop()の2つを使用します。
append(要素)で末尾に要素を追加し、pop(0)で先頭を削除します。

list.py
data = []
for i in [1, 2, 3]:
    for j in [1, 2]:
        if i != j:
            data.append((i, j))
print(data)
# [(1, 2), (2, 1), (3, 1), (3, 2)]

● 処理の流れ

  1. 最初に、空のリスト data が作成されます。

  2. 次に、外側の for ループが i の値を [1, 2, 3] の順に取ります。
    内側の for ループが j の値を [1, 2] の順に取ります。

  3. 内側のループ内で、if 文が実行されます。
    この条件式は、i と j が等しくない場合に True となります。
    つまり、i と j が異なる値の組み合わせの場合に True となります。

  4. 条件が満たされると、(i, j) というタプルが作成され、
    data リストに append() メソッドを使用して追加されます。

  5. 最後に、print(data) 文が実行され、data リストが表示されます。

したがって、このコードは、1 から 3 までの数値と 1 から 2 までの数値の組み合わせを生成し、
それぞれの組み合わせを data リストに追加します。
ただし、i と j の値が等しくない組み合わせのみが追加されます。

※リスト内包表記だと下記のようになる

list.py
print([(i, j) for i in [1, 2, 3] for j in [1, 2] if i != j])
# [(1, 2), (2, 1), (3, 1), (3, 2)]
2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?