from collections import deque

q = deque()

# 1 append(往右边添加一个元素)
q.append(1)
q.append(2)
q.append(3)
print(q)

# 2 appendleft(往左边添加一个元素)
q.appendleft(-1)
q.appendleft(-2)
q.appendleft(-3)
print(q)

# 3 copy(浅拷贝)
new_q = q.copy()
print(new_q)

# 4 count(返回指定元素的出现次数)
print(q.count(1))

# 5 extend(从队列右边扩展一个列表的元素)
q.extend([4, 5, 6])

# 6 extendleft(从队列左边扩展一个列表的元素)
q.extendleft([-4, -5, -6])

# 7 index(查找某个元素的索引位置)
print(q.index(-1))
print(q.index(-1, 4, 10))  # 指定查找区间

# 8 insert(在指定位置插入元素)
q.insert(6, 0)
print(q)
# deque([-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6])

# 9 reverse(队列反转)
print('--->',q)
q.reverse()
print('--->',q)

# 10 rotate(把右边元素放到左边)
q.rotate(2)
print(q)

# 11 pop(获取最右边一个元素,并在队列中删除)
x = q.pop()
print(x, q)
# 12 deque([-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5])

# 13 popleft(获取最左边一个元素,并在队列中删除)
y = q.popleft()
print(y, q)
# -6 deque([-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5])

# 14 remove(删除指定元素)
q.remove(-6)
q.remove(6)

# 15 清空
q.clear()