设为首页 加入收藏

TOP

Python模块collections入门基础
2023-07-26 08:18:21 】 浏览:88
Tags:Python 模块 collections

1. deque双端队列


平常我们使用的python内置list类的append,extend,pop方法都是从list的尾部执行的(pop()默认弹出最后一个元素)。在使用的时候,list很像是一种栈结构(LIFO)。不同的是list灵活性更强,在栈的基础上有动态插入的方法,即insert(index,obj)和索引、切片等操作。强大的list似乎也可以实现队列(FIFO),但由于它实在太灵活了,列表中的元素极容易改变,在使用时令人总是不那么放心。为了实现更好的队列结构,一般程序员会自己实现一个类。


collections模块中为我们提供的双端队列是在队列的基础上实现头尾两端可append、可pop。另外还有insert,rotate等方法,也是相当灵活的
关键方法:


append()          #从右端添加元素(与list同)
appendleft()      #从左端添加元素(与list同)
extend()          #从右端逐个添加可迭代对象(与list同)
extendleft()      #从左端逐个添加可迭代对象(与list同)
pop()            #从右端弹出元素(与list同)
popleft()          #从左端弹出数据
count()          #统计队列中的元素个数(与list同)
insert(index,obj)    #在指定位置插入元素(与list同)
rotate()          #旋转队列


基本使用例子:


Python模块collections入门基础


#计算股票和仓库存货常用的移动平均数


Python模块collections入门基础


2. defaultdict  默认字典


我们平常在使用python内置的dict的时候,根据键key去查询对应的value值,如果不存在对应的key,会报错(KeyError)。但是在defaultdict就会会出现这个问题。


例子:


由第二条的结果可以看出,defaultdict将不存在的键专门用一个字典来存放,而存在的键存放在另外一个字典中。当需要查询元素时,如果遇到没有的键key,就会获取第一字典中预先设定好的显示值。


3. OrderDict  有序字典


在使用python内置的dict时,用print()打印出整个字典,会发现前后两次字典的键值对顺序是不一样的(笔者猜测是前后两次的hash值不一样的缘故)。而在有序字典OderDict中,这种现象不会在发生。


例子:



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ActiveMQ从入门到精通图文详解 下一篇深入理解volatile关键字

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目