Python Deque 模块使用详解

创建Deque序列:

from collections import deque

d = deque()

Deque提供了类似list的操作方法:

  d = deque()
  d.append('1')
  d.append('2')
  d.append('3')
  len(d)
  d[0]
  d[-1]

输出结果:

  3
  '1'
  '3'

两端都使用pop:

  d = deque('12345')
  len(d)
  d.popleft()
  d.pop()
  d

输出结果:

  5
  '1'
  '5'
  deque(['2', '3', '4'])

我们还可以限制deque的长度:

d = deque(maxlen=30)

当限制长度的deque增加超过限制数的项时, 另一边的项会自动删除:

  d = deque(maxlen=2)
  d.append(1)
  d.append(2)
  d
  d.append(3)
  d
  deque([1, 2], maxlen=2)
  deque([2, 3], maxlen=2)

添加list中各项到deque中:

  d = deque([1,2,3,4,5])
  d.extendleft([0])
  d.extend([6,7,8])
  d

输出结果:

  deque([0, 1, 2, 3, 4, 5, 6, 7, 8])
(0)

相关推荐

  • python进阶教程之模块(module)介绍

    我们之前看到了函数和对象.从本质上来说,它们都是为了更好的组织已经有的程序,以方便重复利用. 模块(module)也是为了同样的目的.在Python中,一个.py文件就构成一个模块.通过模块,你可以调用其它文件中的程序. 引入模块 我们先写一个first.py文件,内容如下: 复制代码 代码如下: def laugh():     print 'HaHaHaHa' 再写一个second.py,并引入first中的程序: 复制代码 代码如下: import first for i in range

  • python使用marshal模块序列化实例

    本文实例讲述了python使用marshal模块序列化的方法,分享给大家供大家参考.具体方法如下: 先来看看下面这段代码: import marshal data1 = ['abc',12,23,'jb51'] #几个测试数据 data2 = {1:'aaa',"b":'dad'} data3 = (1,2,4) output_file = open("a.txt",'wb')#把这些数据序列化到文件中,注:文件必须以二进制模式打开 marshal.dump(dat

  • python爬虫常用的模块分析

    本文对Python爬虫常用的模块做了较为深入的分析,并以实例加以深入说明.分享给大家供大家参考之用.具体分析如下: creepy模块 某台湾大神开发的,功能简单,能够自动抓取某个网站的所有内容,当然你也可以设定哪些url需要抓. 地址:https://pypi.python.org/pypi/creepy 功能接口: set_content_type_filter: 设定抓取的content-type(header中的contenttype).包括text/html add_url_filter

  • Python中itertools模块用法详解

    本文实例讲述了Python中itertools模块用法,分享给大家供大家参考.具体分析如下: 一般来说,itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生成器和生成器表达式)的函数联合使用. chain(iter1, iter2, ..., iterN): 给出一组迭代器(iter1, iter2, ..., iterN),此函数创建一个新迭代器来将所有的迭代器链接起来,返回的迭代器从it

  • python time模块用法实例详解

    本文详细讲述了python的内嵌time模块的用法.分享给大家供大家参考之用.具体分析如下:   一.简介 time模块提供各种操作时间的函数 说明:一般有两种表示时间的方式: 第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的 第二种以数组的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同 year (four digits, e.g. 1998) month (1-12) da

  • python pickle 和 shelve模块的用法

    1.pickle 写: 以写方式打开一个文件描述符,调用pickle.dump把对象写进去 复制代码 代码如下: dn = {'baidu':'www.baidu.com','qq':'www.qq.com','360':'www.360.cn'} name = ['mayun','mahuateng','liyanhong'] f = open(r'C:\a.txt','w') pickle.dump(dn,f)      ##写一个对象 pickle.dump(name,f)  ##再写一个

  • python re正则表达式模块(Regular Expression)

    模块的的作用主要是用于字符串和文本处理,查找,搜索,替换等 复习一下基本的正则表达式吧 .:匹配除了换行符以为的任意单个字符 *:匹配任意字符,一个,零个,多个都能匹配得到 俗称贪婪模式 +:匹配位于+之前的一个或者多个字符 |:匹配位于|之前或者之后的字符 ^:匹配行首 $:匹配行尾 ?:匹配位于?之前的零个或者一个字符,不匹配多个字符 \:表示 \ 之后的为转义字符 []:匹配[]之中的任意单个字符,[0-9]表示匹配0到9任意一个数字 ():将位于()之内的的内容当作一个整体 {}:按{}

  • python中的hashlib和base64加密模块使用实例

    看到好几位博主通过对模块的各个击破学习python,我也效法一下,本篇说一下python中加密涉及到的模块. hashlib hashlib模块支持的加密算法有md5 sha1 sha224 sha256 sha384 sha512(加密原理请参考此处),使用起来也很简单. 以md5加密为例,有两种方法: 一. 追加模式 代码示例: 复制代码 代码如下: import hashlib #引入hashlib模块    mm = hashlib.md5() #创建一个md5对象  mm.update

  • python使用cPickle模块序列化实例

    本文实例讲述了python使用cPickle模块序列化的方法,分享给大家供大家参考. 具体方法如下: import cPickle data1 = ['abc',12,23] #几个测试数据 data2 = {1:'aaa',"b":'dad'} data3 = (1,2,4) output_file = open("a.txt",'w') cPickle.dump(data1,output_file) cPickle.dump(data2,output_file)

  • python实现通过shelve修改对象实例

    本文实例讲述了python实现通过shelve修改对象的方法,分享给大家供大家参考. 具体实现方法如下: import shelve she = shelve.open('try.she','c') for c in 'spam': she[c] = {c:23} for c in she.keys(): print c,she[c] she.close() she = shelve.open('try.she','c') print she['p'] she['p']['p'] = 42 #这

  • python中bisect模块用法实例

    本文实例讲述了python中bisect模块用法,分享给大家供大家参考. 具体方法分析如下: 这个模块只有几个函数,一旦决定使用二分搜索时,立马要想到使用这个模块. 示例代码如下: import bisect L = [1,3,3,6,8,12,15] x = 3 x_insert_point = bisect.bisect_left(L,x)#在L中查找x,x存在时返回x左侧的位置,x不存在返回应该插入的位置..这是3存在于列表中,返回左侧位置1 print x_insert_point x_

  • Python常用模块用法分析

    本文较为详细的讲述了Python中常用的模块,分享给大家便于大家查阅参考之用.具体如下: 1.内置模块(不用import就可以直接使用) 常用内置函数: help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝 eval_r(str) 表示合法的python表达式,返回这个表达式 dir(obj) 查看obj的name space中可见的nam

随机推荐