あくまで備忘録なんで雑に記録します
Counter(重複リストを辞書化してカウント)
A = [1, 1, 4, 5, 5, 5]
from collections import Counter
C = Counter(A)
#Counter辞書化
print(C)#Counter({5: 3, 1: 2, 4: 1})
#C[キー]で個数を返す
print(C[4])#1
#キーのみリスト・バリューのみリスト
print(C.keys())#dict_keys([1, 4, 5])
print(C.values())#dict_values([2, 1, 3])
print(list(C.keys()))#[1, 4, 5]
# Counter使わずに、辞書つくる
A = [1, 2, 3, 3, 3, 4]
Di = dict()
for i in A:
if i not in Di:
Di[i] = 1
else:
Di[i] += 1
print(Di)
#ちょっと面倒臭い
defaultdict(空っぽの辞書:要素なしも0で用意されている)
from collections import defaultdict
#初期化された辞書を用意
D = defaultdict(int)#lambda:1 で、初期値1
print(D[0])#0
print(D[1])#0
print(D[2])#0
deque(キュー:FIFO)
from collections import deque
#要素の追加・取り出し(削除)・アクセス(取得)が両端のみに速い
A = [3, 4, 5, 6]
D = deque(A)
#キュー追加(エンキュー右に)
D.append(7)
print(D)#deque([3, 4, 5, 6, 7])
#キュー削除(デキュー左から)
print(D.popleft())#3
deque(スタック:LIFO)
from collections import deque
#要素の追加・取り出し(削除)・アクセス(取得)が両端のみに速い
A = [3, 4, 5, 6]
D = deque(A)
#スタック追加(プッシュ右に)
D.append(7)#deque([3, 4, 5, 6, 7])
print(D)
#スタック削除(ポップ右から)
print(D.pop())#7
参考にしました
Pythonのdequeでキュー、スタック、デック(両端キュー)を扱う | note.nkmk.me
Pythonの標準ライブラリcollectionsモジュールのdeque型を使うと、データをキューやスタック、デック(両端キュー)として効率的に扱うことができる。collections.deque --- コンテナデータ型 — Python 3.11.4 ドキュメント 組み込みのリストlistをキューやスタック、デック...
コメント