🦓 【Python試験】5章:データ構造
作成日: 2022/04/07
0

Python3エンジニア認定試験
今回は5章です!













リストの加工

>>>a = [1,2,3]

#list.append()
>>>a.append(4)
>>>a
[1,2,3,4]

#list.extend() :リストを指定
>>>a.extend([5,6])
>>>a
[1,2,3,4,5,6]

#list.insert()
>>>a.insert(0,10)
>>>a
[10,1,2,3,4,5,6]

#list.remove()
>>>a.remove(10)
>>>a
[1,2,3,4,5,6]

#list.pop()
>>>a.pop(0)
1
>>>a
[2,3,4,5,6]

#list.clear() :引数を持たない
>>>a.clear()
>>>a
[]

#list.copy()
>>>a = [3,2,1]
>>>a.copy()
[3,2,1]
>>>b = a.copy()
>>>b
[3,2,1]
>>>b = a
>>>b
[3,2,1]
>>>b[0] = 100
>>>b
[100,2,1]
>>>a
[100,2,1]
#bを変えるとaも変わってしまう

#list.popleft()

#list.index()
>>>a = [1,1,2,3]
>>>a.index(1)
0

#list.count()
>>>a.count(1)
2

#list.sort()
>>>a.sort()
>>>a
[1,1,2,3]

>>>a.sort(reverse=True)
>>>a
[3,2,1,1]

#list.reverse()

キュー: first-in, first-out

先に入れたデータを先に出す

from collections import deque
queue = deque(["hello","worled"])
queue.append("Python")
queue.popleft()
→'hello'

リスト内包表記

for文の特殊パターン
・短い文字数で記述できる
・パフォーマンスの向上が見込める
・Python初学者には読みにくい

#Dataに0~9を1つずつ追加する
data = []
for i in range(10):
    data.append(i)
⇄
data = [i for i in range(10)]

読み解き方:
1. リストであることに注目
2.ループに注目
3.取り出すデータに注目

del

データを削除。popとの違いは、データを返さない

>>>a = [1,2,3]
>>>del a[0]
>>>a
[2,3]

#clearと同じ :はスライシング
>>>a = [1,2,3]
>>>del a[:]
>>>a
[]

タプル

変更不能なリスト。別の処理で意図しない変更を防ぐ。
・宣言時のデータを作る
・以降は参照のみ可能
・インデックスを指定してアクセス可能
・要素を変更できない

>>>data = (1,2,3)
>>>data[0]
1

集合 set

リストの特殊パターン。
・重複しない
・順不同

集合同士の計算ができる

#和:集合Aもしくは集合B
>>>a = {1,2,3}
>>>b = {1,4}
>>>a | b
{1,2,3,4}

#差:集合Aに存在し、集合Bにはない
>>>a = {1,2,3}
>>>b = {1,4}
>>>a - b
{2,3}

#交差:集合Aにも集合Bにもある
>>>a = {1,2,3}
>>>b = {1,4}
>>>a & b
{1}

#対象差:集合Aまたは集合Bに共通しない
>>>a = {1,2,3}
>>>b = {1,4}
>>>a ^ b
{2,3,4}

辞書型(ディクショナリ)

キーとバリューの(値)の2セット
入力(キー)と出力(バリュー)の一対一の関係を作る

>>>data = {"key":"value"}
>>>data["key"]
"value"

#キーでループ1
>>>for key in data:
...    print(key, data[key])
...
key value
key2 value2

#キーでループ2
>>>for key, value in data.items():
...    print(key, value)
...
key value
key2 value2

#キーの削除
>>>del data["key"]

#辞書型データを一度に作る
>>>dict([("key", "value"),("key2","value")])
{'key': 'value', 'key2': 'value'}

感想

リスト内包表記や、辞書型など、
手を動かして演習を繰り返す必要がある内容だなと思いました。
なんとなく未消化ですが、次に進みたいと思います。

出典

データサイエンティストgepuroさん
「Python3エンジニア認定基礎試験 合格への勉強方法」
https://www.youtube.com/watch?v=BUzFIGyIojg&list=PLO-KH_xqEh8FHpIUXWHVJnJLXi6XO7BF


Python・Java・C#を学びます。