python deque模块简单使用代码实例

最近在pythonTip做题的时候,遇到了deque模块,以前对其不太了解,现在特此总结一下

deque模块是python标准库collections中的一项,它提供了两端都可以操作的序列,这意味着,在序列的前后你都可以执行添加或删除操作。

deque 是python提供的一个数据结构,线程安全,功能比list强大

代码如下

from collections import deque

user_list = ['admin', 'root']
user = user_list.pop() # 弹出list尾部的元素, list没有提供操作头部的方法
print(user, user_list) # root ['admin']

"""
deque 是线程安全的 GIL保证
list 非线程安全
"""

#   def __init__(self, iterable=(), maxlen=None)
user_deque = deque(['admin', 'root', 'jet'])

# append 添加一个元素到deque的尾部,也即是从右边插入一个元素
user_deque.append('md')

# 从头部添加一个元素
user_deque.appendleft('fi')

# pop 从尾部弹出一个元素
pop_item = user_deque.pop()
print(pop_item)

# 从头部弹出一个元素
pop_left_item = user_deque.popleft()

# extent 添加一个deque到原deque中去,合并deque. 注意: 并不会返回一个新的deque
user_deque.extend(deque(('a1', 'a2')))

# 合并deque到的元素到原deque的左边
user_deque.extendleft(deque([123,456]))

# 统计个数
count = user_deque.count(123)
print(count)

print(user_deque)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python字符串hashlib加密模块使用案例

    主要用于对字符串的加密,最常用的为MD5加密: import hashlib def get_md5(data): obj = hashlib.md5() obj.update(data.encode('utf-8')) result = obj.hexdigest() return result val = get_md5('123') #这里放入要加密的字符串文字. print(val) #简便的写法: pwd = input('请输入密码:').encode('utf-8') result

  • Python collections中的双向队列deque简单介绍详解

    前言 在python神书<Python+Cookbook>中有这么一段话:在队列两端插入或删除元素时间复杂度都是 O(1) ,而在列表的开头插入或删除元素的时间复杂度为 O(N). 于是就想验证下. 简单使用 基本代码 from collections import deque q = deque(maxlen=4)#有固定长度的双向队列 qq = deque() #无固定长度 print(dir(q))#看看有哪些可用方法或属性 结果: ['__add__', '__bool__', '__

  • 深入浅析Python 命令行模块 Click

    Click 是用 Python 写的一个第三方模块,用于快速创建命令行.我们知道,Python 内置了一个 Argparse 的标准库用于创建命令行,但使用起来有些繁琐,Click 相比于 Argparse,就好比 requests 相比于 urllib. 关于Click? 说下 Click 模块是干啥的,简单说,它就是把我们的 Python 脚本的一些函数,通过添加带有 Click 关键字的装饰器进行装饰进而将函数调用的形式转化为命令行传参的形式然后执行.听不懂也没关系,我们会一步一步来,基本

  • 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

  • Python标准库shutil模块使用方法解析

    shutil.rmtee 删除目录及以内的所有文件. import shutil shutil.rmtree(r'D:\python\222') #包括222在内的所有文件全部删除. shutil.move 重命名文件或文件夹 import shutil shutil.move(源名称,更改后名称) import shutil shutil.move(r'D:\python\b.log',r'D:\python\a.log') shutil.make_archive 压缩文件 import sh

  • 详解Python的collections模块中的deque双端队列结构

    deque 是 double-ended queue的缩写,类似于 list,不过提供了在两端插入和删除的操作. appendleft 在列表左侧插入 popleft 弹出列表左侧的值 extendleft 在左侧扩展 例如: queue = deque() # append values to wait for processing queue.appendleft("first") queue.appendleft("second") queue.appendl

  • Python标准库json模块和pickle模块使用详解

    将Python数据类型转换为其他代码格式叫做(序列化),而json就是在各个代码实现转换的中间件. 序列化要求: 1. 只能有int,str,bool,list,dict,tuple的类型支持序列化. 2. json序列化是以字符串形式出现.那么:lis= "[11,22,33]" 这样的也能称为序列化. 3. 必须将数据类型包裹在list或dict内进行转换. 4. json内部的str格式,必须以双引号来进行包裹. 5. bool值转换为小写的首字母 json.dumps 将py转

  • python deque模块简单使用代码实例

    最近在pythonTip做题的时候,遇到了deque模块,以前对其不太了解,现在特此总结一下 deque模块是python标准库collections中的一项,它提供了两端都可以操作的序列,这意味着,在序列的前后你都可以执行添加或删除操作. deque 是python提供的一个数据结构,线程安全,功能比list强大 代码如下 from collections import deque user_list = ['admin', 'root'] user = user_list.pop() # 弹

  • Python csv模块使用方法代码实例

    这篇文章主要介绍了Python csv模块使用方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 import csv def openSCV(filename): with open("renting.csv",'r',encoding = 'utf_8_sig') as f: f_csv = csv.reader(f) for row in f_csv: print(row) def Test1(): headers =

  • Python xmltodict模块安装及代码实例

    最近在对接微信公众号.微信支付等功能,发现很多都是用xml格式的.在使用django日常处理的时候,都是手动拼接的,真的是很恶心.今天仔细的看了一下python的xmltodict模块,发现其实完全可以不用手动拼接,轮子本身都有了.只要那来用就好了.之前自己的方式反而有点傻逼了. 首先使用和安装都很简单 安装 pip install xmltodict #如果安装失败,直接去github上下载手动装吧,https://github.com/martinblech/xmltodict 从名字就知道

  • python argparse模块传参用法实例

    目录 前言 传入一个参数 操作args字典 传入多个参数 改变数据类型 位置参数 可选参数 默认值 必需参数 前言 argsparse是python的命令行解析的标准模块,内置于python,不需要安装.这个库可以让我们直接在命令行中就可以向程序中传入参数并让程序运行. 港真的,今天是我第一次学习argsparse.因为用不到,自然也就没有学习的动力.但是现在电脑有点卡,每次打开pycharm太卡了,逼得我不得不开始使用命令行来测试代码. 传入一个参数 我们先在桌面新建“arg学习”的文件夹,在

  • Python单链表简单实现代码

    本文实例讲述了Python单链表简单实现代码.分享给大家供大家参考,具体如下: 用Python模拟一下单链表,比较简单,初学者可以参考参考 #coding:utf-8 class Node(object): def __init__(self, data): self.data = data self.next = None class NodeList(object): def __init__(self, node): self.head = node self.head.next = No

  • python os模块简单应用示例

    本文实例讲述了python os模块简单应用.分享给大家供大家参考,具体如下: 举例中的目录形式如下所示: In [36]: pwd Out[36]: '/home/python/Desktop/code' In [37]: ls hello.py hello.txt test.py 文件夹01/ 文件夹02/ 文件夹03/ 1.当前路径及路径下的文件 os.getcwd():查看当前所在路径. os.listdir(path):列举目录下的所有文件.返回的是列表类型. In [1]: impo

  • Python进度条的制作代码实例

    这篇文章主要介绍了Python进度条的制作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 import sys,time #导入模块 for i in range(50): #进度条的长度 sys.stdout.write("#") #进度条的内容,这里要注意了,pycharm有可能不显示write的方法 sys.stdout.flush() #刷新缓存 time.sleep(0.5) #间隔时间,和shell的sleep差不

  • Python定时发送天气预报邮件代码实例

    这篇文章主要介绍了Python定时发送天气预报邮件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用python爬虫爬到的天气预报,使用smtplib和email模块可以发送到邮箱,使用schedule模块可以定时发送.以下是代码- #导入模块 import requests from bs4 import BeautifulSoup import smtplib from email.mime.text import MIMEText

  • Python Celery多队列配置代码实例

    这篇文章主要介绍了Python Celery多队列配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Celery官方文档 项目结构 /proj -__init__ -app.py #实例化celery对象 -celeryconfig.py #celery的配置文件 -tasks.py #celery编写任务文件 app.py #coding:utf-8 from __future__ import absolute_import fr

  • pymysql的简单封装代码实例

    这篇文章主要介绍了pymysql的简单封装代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 #coding=utf-8 #!/usr/bin/python import pymysql class MYSQL: """ 对pymysql的简单封装 """ def __init__(self,host,user,pwd,db): self.host = host self.user = us

随机推荐