python有什么用会计专业,python有什么用知乎
Collections是Python内置的集合模块,它提供了许多有用的集合类。
1、命名元组
Python提供了很多非常好用的基本类型,比如不变元组,这样你就可以很容易的表示二进制向量。
v=(2,3)).
我们发现2和3代表一个向量的两个坐标,但是在没有额外指令的情况下,很难直接看出这个元组是用来代表一个坐标的。
用这个理由来定义阶级,太夸张了。在这一点上,namedtuple非常有用。
fromcollectionsimportnamedtuple
vector=namedtuple(vector ,[x , y ])
V=向量(2,3))。
五. x
2
v.y
三
Namedtuple是创建自定义元组对象的函数,可以指定元组元素的个数,引用属性中的元组元素,而不是索引。
因此,使用namedtuple,您可以轻松定义具有元组不变性并且可以基于属性引用的数据类型。
您可以验证创建的矢量对象的类型。
类型(v)
Instance (v,vector))。
真实的
例(v,tuple))。
真实的
同样,如果一个圆要用坐标和半径来表示,也可以用namedtuple来定义。
circle=namedtuple(circle ,[x , y , r]
# namedtuple(名称,[属性列表])。
2、德克
在数据结构中,我们知道队列和堆栈是两种非常重要的数据类型。一个是先进先出,一个是后进先出。在python中,使用list存储数据时,通过索引访问元素的速度很快,但是插入和删除元素的速度很慢。由于链表是线性存储的,在数据量较大的情况下,插入和删除效率不高。
Deque是一种双链表结构,可以有效地实现插入和删除操作,非常适合实现数据结构,比如队列和栈。
从集合中导入队列
deq=deque ([ 1,2,3 ]
deq.append(4))。
抑郁症体验问卷
德克([ 1,2,3,4 ]).
deq.appendleft(5)).
抑郁症体验问卷
德克([ 5,1,2,3,4 ]).
deq.pop())
四
deq.popleft(
五
抑郁症体验问卷
德克([ 1,2,3 ]
Deque支持list的append(和pop)(和appendleft())和popleft()),所以可以非常有效地添加和删除头中的元素。
3.违约迪克
使用dict字典类型时,如果引用的键不存在,就会抛出一个KeyError。如果不想让这个键存在,可以通过返回默认值来使用defaultdict。
fromcollectionsimportdefaultdict
DD=默认字典(lambda:“默认值”).
dd[key1]=a
dd[key1]
一个
Dd[key2] # key2未定义,将恢复默认值。
默认值
注意,默认值是通过调用函数返回的,该函数是在创建defaultdict对象时传递的。
defaultdict的行为与dict完全相同,只是在键不存在时返回默认值。
4.订购的CD
使用dict时,键是乱序的。当重复dict时,我们不能决定键的顺序。
但是,如果您想保持密钥的顺序,可以使用有序的CD。
fromcollectionsimportordereddict
d=DICT () ) (a),1).
,( b ,2),( c ,3)])
d # dict的键有问题
{a: 1, c: 3, b: 2}
od=OrderedDict([(a ,1),( b ,2),( c ,3)])
od # OrderedDict的关键字已排序
OrderedDict([(a ,1),( b ,2),( c ,3)])
请注意,OrderedDict的键是按插入顺序排序的,而不是键本身。
od=OrderedDict()
od[z]=1
od[y]=2
od[x]=3
List(od.keys()) #按插入键的顺序返回
[z , y , x]
OrderedDict可以实现FIFO(先进先出)字典。当容量超过限制时,最早添加的密钥将首先被删除。
从集合导入订单直接
LastUpdatedOrderedDict类(OrderedDict):
def __init__(self,capacity):
super(LastUpdatedOrderedDict,self)。__init__()
自我。_容量=容量
def __setitem__(self,key,value):
如果Key在self else 0中,则containsKey=1
if len(self) - containsKey=self。_容量:
last=self.popitem(last=False)
打印(删除:,最后一个)
如果包含密钥:
del self[key]
print(set:,(key,value))
否则:
打印(添加:,(键,值))
OrderedDict。__setitem__(自身,关键字,值)
5、链式地图
ChainMap可以将一组字典串在一起形成一个逻辑字典。ChainMap本身也是一个dict,但是搜索的时候会在内部的dict中按顺序搜索。
什么时候使用ChainMap最好?例如,应用程序经常需要传入参数。参数可以通过命令行、环境变量或默认参数传入。我们可以使用ChainMap来查找参数的优先级,即先检查命令行参数,如果没有传入则检查环境变量,如果没有传入则使用默认参数。
下面的代码演示了如何查找参数user和color。
从集合导入链图
导入操作系统,argparse
#构造默认参数:
默认值={
颜色:红色,
用户:来宾
}
#构造命令行参数:
parser=argparse。ArgumentParser()
parser.add_argument(-u ,- user )
parser.add_argument(-c ,- color )
namespace=parser.parse_args()
command_line_args={ k: v for k,v in vars(命名空间)。items() if v }
#组合成链图:
combined=chain map(command _ line _ args,os.environ,默认值)
#打印参数:
打印( color=%s % combined[color])
打印(用户=%s %组合[用户])
当没有参数时,打印出默认参数:
$ python3 use_chainmap.py
颜色=红色
用户=来宾
传入命令行参数时,命令行参数优先:
$ python3 use_chainmap.py -u bob
颜色=红色
用户=鲍勃
命令行参数和环境变量同时传入,命令行参数具有更高的优先级:
$ user=admin color=green python 3 use _ chain map . py-u bob
颜色=绿色
用户=鲍勃
6、柜台
Counter是一个简单的计数器,例如,计算出现的字符数:
从集合导入计数器
s= abbcccdddd
计数器
计数器({d: 4, c: 3, b: 2, a: 1})
Counter实际上是dict的一个子类。
7.摘要
集合模块提供了一些有用的集合类,可以根据需要进行选择。
以上是边肖介绍的python内置模块集合。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对python博客网站的支持!
如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。