python collection模块,python3 collections模块
本文介绍了Python中的collections集合和类型化数据类型模块,通过示例代码详细介绍了该模块。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。
00-1010 1.collections集合1,namedtuple:命名元组对象2,deque: deque 3,defaultdict:默认字典4,OrderedDict:序列字典5,Counter: Counter 2,typing模块1,typing模块函数2,typing模块4,typing常用类型
目录
Collections是Python内置的一个集合模块,它提供了许多有用的集合类。
一、collections集合
Namedtuple是一个用于创建自定义元组对象的函数。它还指定了元组元素的数量,并且可以通过属性而不是索引来引用元组的一个元素。
namedtuple(名称, [属性list])
这样,我们就可以很容易地用namedtuple定义一个数据类型,它具有元组的不变性,可以根据属性引用,使用起来非常方便。
我们知道元组可以表示一个不变集。例如,一个点的二维坐标可以表示为:
p=(1,2)
但是,看到(1,2),很难看出这个元组是用来表示一个坐标的。
定义一个阶层又是小题大做。这时,namedtuple就派上用场了:
从集合导入命名元组
Point=namedtuple(Point ,[x , y])
p=点(1,2)
p.x # 1
第2页
您可以验证创建的点对象是元组的子类:
isinstance(p,Point) #True
isinstance(p,tuple) #True
同样,如果要用坐标和半径来表示圆,也可以用namedtuple来定义它:
Circle=namedtuple(Circle ,[x , y , r])
1、namedtuple:命名tuple对象
使用list存储数据时,按索引访问元素速度快,插入和删除元素速度慢。由于list是线性存储,在数据量较大的情况下,插入和删除的效率很低。
Deque是一个高效插入和删除的双向列表,适用于队列和堆栈:
Deque不仅实现了list的append()和pop(),还支持appendleft()和popleft(),可以非常高效地在头中添加或删除元素。
从集合导入队列
q=deque([a , b , c])
q.append(x )
q.appendleft(y )
q
#deque([y , a , b , c , x])
2、deque:双端队列
使用dict时,如果引用的键不存在,就会抛出一个KeyError。如果想在键不存在时返回默认值,可以使用defaultdict。
请注意,默认值是由调用函数返回的,并且该函数是在创建defaultdict对象时传入的。
除了键不存在时返回默认值,defaultdict的其他行为和dict完全一样。
从集合导入默认字典
dd=defaultdict(lambda: 不适用)
dd[key1]=abc
Dd[key1] # key1存在
#abc
Dd[key2] # key2不存在,返回默认值。
# 不适用
>
4、OrderedDict:顺序字典
使用dict时,Key是无序的。在对dict做迭代时,我们无法确定Key的顺序。
如果要保持Key的顺序,可以用OrderedDict:
from collections import OrderedDict
注意,OrderedDict的Key会按照插入的顺序排列,不是Key本身排序:
od = OrderedDict()
OrderedDict可以实现一个FIFO(先进先出)的dict,当容量超出限制时,先删除最早添加的Key:
from collections import OrderedDict
5、Counter:计数器
Counter是一个简单的计数器.
Counter实际上也是dict的一个子类,下面的结果可以看出,字符'g'、'm'、'r'各出现了两次,其他字符各出现了一次。
例如,统计字符出现的个数:
from collections import Counter
二、typing模块
1、typing模块的作用
类型检查,防止运行时出现参数和返回值类型不符合。
作为开发文档附加说明,方便使用者调用时传入和返回参数类型。
该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。
注意:typing模块只有在python3.5以上的版本中才可以使用,pycharm目前支持typing检查。
2、使用typing模块
在传入参数时通过"参数名:类型"的形式声明参数的类型;
返回结果通过"-> 结果类型"的形式声明结果的类型。
在调用的时候如果参数的类型不正确pycharm会有提醒,但不会影响程序的运行。
from typing import List, Tuple, Dict
对于如list列表等,还可以规定得更加具体一些。如:"-> List[str],规定返回的是列表,并且元素是字符串。
from typing import List
4、typing常用类型
int、long、float: 整型、长整形、浮点型
bool、str: 布尔型、字符串类型
List、 Tuple、 Dict、 Set:列表、元组、字典、集合
Iterable、Iterator:可迭代类型、迭代器类型
Generator:生成器类型
到此这篇关于Python集合collections、数据类型typing模块的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。