🦓
【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#を学びます。