多语言展示
当前在线:953今日阅读:91今日分享:37

Python数据结构collections模块

python  collections是python的一个集合模块,提供了多种python集合模块,下面我们来看看它的使用
工具/原料

python Collections

方法/步骤
1

我们首先来看看namedtuple,从字面意思可以看出它和元组有关,他是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性引用tuple的某个元素。同时它又具备了元组的性质。如下我们使用它来定义x,y,z轴坐标# -*- coding: UTF-8 -*import  collectionsMytuple=collections.namedtuple('Mytuple',['x','y','z'])mtu=Mytuple(1,2,3print(mtu)

2

我们运行上面的代码,输出Mytuple(x=1, y=2, z=3)可以看出相比元组,它多了前面的几个类似key的属性,我们可以通过mtu.x,mtu.y,mtu.z 输出三条坐标的值,如图二第二行值就是x,y,z的值

3

下面我们在看看deque,它提供了两端都可以操作的序列,这意味着,在序列的前后你都可以执行添加或删除操作,它也是是python标准库collections中的。下面我们使用它看看import collectionsmyl=collections.deque()print(type(myl))myl.append(1)print(myl)myl.extend([2,3,4])print(myl)myl.appendleft('x')print(myl)myl.pop()print(myl)可以看出它可以使用list的一些属性方法,还可以使用appendleft和popleft来从开头添加删除元素

4

观察以上deque的输出结果deque([1])deque([1, 2, 3, 4])deque(['x', 1, 2, 3, 4])deque(['x', 1, 2, 3])都是deque类型,如果我们要把它转化成list,print(list(myl))就可以了

5

下面我们在看看collections的defaultdict,相比dic它可以定义一个,dic没有键的时候不报错,输出你定义的类容import collectionsmydic=collections.defaultdict(lambda :'None')mydic['d']='ddd')print mydic['d']print mydic['xx']输出结果:dddNone

6

我们在看看collections的OrderedDict,OrderedDict会把字典的Key按照插入的先后顺序排列如下代码:mydico=collections.OrderedDict()mydico['s']='ss'mydico['y']='yy'mydico['p']='ppprint(mydico)输出:OrderedDict([('s', 'ss'), ('y', 'yy'), ('p', 'pp')])

7

最后我们看看collections 的Counter,从字面意思就知道他是计数的,我们可以用它统计一个元素出现的次数,例如我统计一个list中各个元素个数,如下所示:from collections import Counterco=Counter()la=['a','a','v','c','a','s']for l in la:    co[l]+=1print(co)输出Counter({'a': 3, 'c': 1, 's': 1, 'v': 1})

注意事项

python collections的使用

推荐信息