collections是python的高级容器类库,包含了dict、truple之外的常用容器。

下面介绍常用的deque

1. deque是双端队列,可以从两端塞元素进去,也可以从两端取元素。

2. deque是线程安全的,可以用来做多线程的共享资源,我也是因为这个开始接触duque的

>>> from collections import deque
>>> a = [1, 2, 3, 4]
用列表初始化deque
>>> deq = deque(a)
>>> deq
deque([1, 2, 3, 4])
往deque中迭代入队列表原始
>>> deq.extend(a)
>>> deq
deque([1, 2, 3, 4, 1, 2, 3, 4])
从右端入队元素
>>> deq.append(5)
>>> deq
deque([1, 2, 3, 4, 1, 2, 3, 4, 5])
从左端输入元素
>>> deq.appendleft(6)
>>> deq
deque([6, 1, 2, 3, 4, 1, 2, 3, 4, 5])
从右端出队
>>> deq.pop()
5
从左端出队
>>> deq.popleft()
6
>>> deq
deque([1, 2, 3, 4, 1, 2, 3, 4])
从左往右旋转
>>> deq.rotate(-2)
>>> deq
deque([3, 4, 1, 2, 3, 4, 1, 2])
从右往左旋转
>>> deq.rotate(2)
>>> deq
deque([1, 2, 3, 4, 1, 2, 3, 4])
从文件输出到deque
比如,输入文件的倒数3行,得到大小为3的队列
>>> a = deque(open('test.txt'), 3)
>>> a
deque(['5\n', '6\n', '7\n'], maxlen=3)

python collections deque的更多相关文章

  1. 739. Daily Temperatures && 单调栈 && Python collections deque

    题目大意 给你接下来每一天的气温,求出对于每一天的气温,下一次出现比它高气温的日期距现在要等多少天 解题思路 利用单调栈,维护一个单调递减的栈 将每一天的下标i入栈,维护一个温度递减的下标 若下一个温 ...

  2. python之保留有限的历史记录(collections.deque)

    1.deque(maxlen=N)创建一个固定长度的队列,当有新的记录加入而队列已经满时,会自动移除老的记录. from collections import deque q = deque(maxl ...

  3. python collections 模块 之 deque

    class collections.deque(iterable[,maxlen]): 返回 由可迭代对象初始化的 从左向右的 deque 对象. maxlen: deque 的最大长度,一旦长度超出 ...

  4. [python] Queue.Queue vs. collections.deque

    https://stackoverflow.com/questions/717148/queue-queue-vs-collections-deque/717199#717199 Queue,Queu ...

  5. Python collections模块总结

    Python collections模块总结 除了我们使用的那些基础的数据结构,还有包括其它的一些模块提供的数据结构,有时甚至比基础的数据结构还要好用. collections ChainMap 这是 ...

  6. (转)python collections模块详解

    python collections模块详解 原文:http://www.cnblogs.com/dahu-daqing/p/7040490.html 1.模块简介 collections包含了一些特 ...

  7. Python Collections详解

    Python Collections详解 collections模块在内置数据结构(list.tuple.dict.set)的基础上,提供了几个额外的数据结构:ChainMap.Counter.deq ...

  8. python的deque(双向)队列详解

    首先 python的队列有很多种 Python标准库中包含了四种队列,分别是queue.Queue / asyncio.Queue / multiprocessing.Queue / collecti ...

  9. python collections defaultdict

    class_counts  = defaultdict(int) 一.关于defaultdict 在Python里面有一个模块collections,解释是数据类型容器模块.这里面有一个collect ...

随机推荐

  1. python基础-第四篇-4.2文件操作

    基本打开模式 文件操作的流程:打开文件,操作文件,关闭文件 打开文件方法:open(文件名,模式,编码) file = open(‘文件名’) 模式在不给值的情况下,默认为只读,而且如果是非当前的目录 ...

  2. Django 框架之 URL

    URL配置就像Django所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表. # 示例: urlpatterns = [ path(route, view, kwa ...

  3. Amr and Chemistry---cf558C(暴力,加技巧)

    题目链接:http://codeforces.com/problemset/problem/558/C 题意:有n个数,每个数都可以进行两个操作 *2 或者 /2,求最小的操作次数和,使得所有的数都相 ...

  4. (4.2)动态管理视图DMV

    以下是一些您应该熟悉的更有用的DMV: 1.sys.dm_exec_cached_plans - 可用于SQL Server的缓存查询计划 2.sys.dm_exec_sessions - SQL S ...

  5. CheckStyle——检查编码格式等是否符合规范

    CheckStyle 一.checkstyle简介 checkstyle是idea中的一个插件,可以很方便的帮我们检查java代码中的格式错误,它能够自动化代码规范检查过程,从而使得开发人员从这项重要 ...

  6. BDC批量修改物料描述

    一.定义变量 type-POOLs:TRUXS,slis. TYPES: BEGIN OF ty_input , matnr TYPE mara-matnr , " 物料号 maktx TY ...

  7. windows平台tensorboard的配置及使用

    由于官网和其他教程里面都是以Linux为平台演示tensorboard使用的,而在Windows上与Linux上会有一些差别,因此我将学习的过程记录下来与大家分享(基于tensorflow1.2.1版 ...

  8. 转:在0~N(不包括N)范围内随机生成一个长度为M(M <= N)且内容不重复的数组

    1. 最朴素暴力的做法. void cal1() { , j = , num = ; int result[M]; result[] = rand() % N; //第一个肯定不重复, 直接加进去 ; ...

  9. python全栈开发从入门到放弃之递归函数的调用

    1.递归效率低,需要在进入下一次递归时保留当前的状态,见51cto博客 解决方法是尾递归,即在函数的最后一步(而非最后一行)调用自动但是python又没有尾递归,且对递归层级做了限制 必须有一个明确的 ...

  10. VirtualBox AndroidX86 网络设置

    在Virtualbox中,把虚拟机网络设为“网络地址转换(NAT)”模式,高级中控制芯片(T)选择:PCnet-FAST III(Am79C973), 然后启动你的android-x86 4.0虚拟机 ...