python之collection模块

collections 是python内建的一个集合模块。

namedtuple可以很方便的定义一种数据类型,他具备tuple的不可变性,也可以根据属性来引用,非常方便。


1

2

3

4

5

from collections import  namedtuple

point = namedtuple(‘p‘,[‘x‘,‘y‘])

= point(1,2)

print(p.x) #1

print(p.y) #2

# namedtuple(‘名称‘, [属性list]):Circle = namedtuple(‘Circle‘, [‘x‘, ‘y‘, ‘r‘])

deque可以高效的实现插入和删除的双向列表,适用于队列和栈。


1

2

3

4

5

6

7

from collections import deque

q= deque([‘a‘,‘b‘,‘c‘])

q.append(‘x‘)

q.appendleft(‘y‘)

print(q)

#deque([‘y‘, ‘a‘, ‘b‘, ‘c‘, ‘x‘])

defaultdict

使用dict时,如果key不存在,则抛出KeyError,如果希望key不存在时,返回一个默认值,可以用defaultdict。


1

2

3

4

5

from collections import defaultdict

dic = defaultdict(lambda :‘N/A‘)

dic[‘k1‘= ‘abc‘

print(dic[‘k1‘]) #‘abc’

print(dic[‘k2‘]) #N/A

OrderedDict

使用dict时,key是无序的,如果要保证key的顺序,可以用OrderedDict。OrderedDict的key是按照插入的顺序排列,不是key本身排序。


1

2

3

4

5

from collections import OrderedDict

dic = dict([(‘a‘,1),(‘b‘,2),(‘c‘,3)])

dic1 = OrderedDict([(‘a‘,1),(‘b‘,2),(‘c‘,3)])

print(dic.keys()) #dict_keys([‘a‘, ‘b‘, ‘c‘])

print(dic1.keys()) #odict_keys([‘a‘, ‘b‘, ‘c‘])

Counter是一个简单的计数器,目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储。其中元素为key,个数为value. 计数值可以是任意的interger(含0和负数)

from collections import Counterc = Counter(‘abcdeabcdabcaba‘)print(c)

1

输出:Counter({‘a‘5‘b‘4‘c‘3‘d‘2‘e‘1})

原文地址:https://www.cnblogs.com/valorchang/p/11282087.html

时间: 2024-10-31 18:36:37

python之collection模块的相关文章

Python进阶(十)----规范化格式目录, time模块, datatime模块,random模块,collection模块(python额外数据类型)

Python进阶(十)----规范化格式目录, time模块, datatime模块,random模块,collection模块(python额外数据类型) 一丶规范化格式目录 六个目录: #### 对某某项目进行一个标准化的开发,进行规范化. #bin : 启动项目程序的主入口 #conf : 项目的配置文件 #core : 主要逻辑(业务逻辑) #db : 存放数据() #lib : 辅助文件(存放公共的一些方法) #README : 项目文档说明 ? 二丶time模块(时间模块) 时间的三

python collection模块中几种数据结构(Counter、OrderedDict、namedtup)

collection模块中有几种数据结构我们可能用得到. Counter是字典的子类,负责计数的一个字典,支持 + 加法 - 减法 & 求公共元素 | 求并集 print('Counter类型的应用') c = Counter("dengjingdong") #c = Counter({'n': 3, 'g': 3, 'd': 2, 'i': 1, 'o': 1, 'e': 1, 'j': 1}) print("原始数据:",c) print("最

python中string模块各属性以及函数的用法

任何语言都离不开字符,那就会涉及对字符的操作,尤其是脚本语言更是频繁,不管是生产环境还是面试考验都要面对字符串的操作. python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 字符串属性函数 系统版本:CentOS release 6.2 (Final)2.6.32

python学习之模块--模块(五)

5.10 包 5.10.1 包的概念 [官网解释] Packages are a way of structuring Python's module namespace by using "dotted module names" 包是一种通过使用'.模块名'来组织python模块名称空间的方式. 具体的:包就是一个包含有__init__.py文件的文件夹,所以其实我们创建包的目的就是为了用文件夹将文件/模块组织起来 [强调]: 在python3中,即使包下没有__init__.py

Python中subprocess 模块 创建并运行一个进程

python的subprocess模块,看到官方声明里说要尽力避免使用shell=True这个参数,于是测试了一下: from subprocess import call import shlex cmd = "cat test.txt; rm test.txt" call(cmd, shell=True) 运行之后: 1:打开并浏览了test.txt文件 2:删除了test.txt文件 from subprocess import call import shlex cmd = &

python时间处理模块 datetime time模块 deltetime模块

1 首先介绍time模块,因为简单 python 自带模块 本人使用time模块,只使用两个函数 time函数和sleep函数 import time a.     time.time()   函数 返回unix时间  常用作两个时间差的计算 b.     time.sleep()  休眠多久,精度为子秒(subsecond) In [90]: t1 = time.time() In [91]: t1 Out[91]: 1461400225.877932 In [92]: time.sleep(

python安装mysqldb模块

今天在阿里云一台新的服务器部署程序后台,发现上面的python缺少MySQLDB 模块,记录安装过程. 首先django程序,运行 python manage.py sycdb 报错: ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb MySQLdb模块的包名字叫mysql-python,于是pip安装之,(关于pip,可以参考这篇文章) 运行: pip install mysql-python

Python 利用pytesser模块识别图像文字

使用的是python的pytesser模块,原先想做的是图片中文识别,搞了一段时间了,在中文的识别上还是有很多问题,这里做记录分享. pytesser,OCR in Python using the Tesseract engine from Google.是谷歌OCR开源项目的一个模块,可将图片中的文字转换成文本(主要是英文). 1.pytesser安装 使用设备:win8 64位 PyTesser使用Tesseract OCR引擎,将图像转换到可接受的格式,然后执行tesseract提取出文

python学习--创建模块

昨天做了python客户端和服务器端通信,并把接收到的信息写到数据库,因为对数据库进行操作是个经常调用的行为,所以我想把调用数据库的操作写成一个module来给其它python程序调用,所以将昨天的服务器端程序拆分为两个文件: 1.主程序python.py #!/usr/bin/env python import socket import json import connmysql s = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) h