kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

標準ライブラリ 続き2

リスト

STLlistっていったら双方向リストなんだ
まあ配列をリストと呼ぶよりは納得できる

dequeがそのまんまで足りてそう

class List():
    def __init__(self):
        self.l = deque()

    def size(self):
        return len(self.l)

    def __iter__(self):
        return iter(self.l)

    def push_front(self, x):
        self.l.appendleft(x)

    def push_back(self, x):
        self.l.append(x)

    def pop_front(self):
        return self.l.popleft()

    def pop_back(self):
        return self.l.pop()

    def insert(self, i, x):
        self.l.insert(i, x)

    # ない!
    # def erase(self, i):

    # 代わりに、指定した値の要素を消すのならある
    def remove(self, x):
        self.l.remove(x)

    def clear(self):
        self.l.clear()

と思ったらeraseに対応した関数がなかった
双方向リストなら途中の要素を消すのも簡単なはずだけど
dequeの中をいじれないとどうしようもない?