python成长之路第二篇(4)_collections系列
一、分别取出大于66的数字和小于66的数字
小练习:需求要求有一个列表列表中存着一组数字,要求将大于66的数字和小于66的数字分别取出来
dic = {}
for i in aa :
ifi <= 66 :
if 'k1' in dic.keys():
dic['k1'].append(i)
else:
#创建只有一项元素的列表
dic['k1'] = [i,] #为了规范请使用逗号else:
if 'k2' in dic.keys():
dic['k2'].append(i)
else:
dic['k2'] = [i,]
print(dic['k1'])
print(dic['k2'])
#k1和k2就分别保存了大于66和小于66的结果
二、collections系列
(1)Counter计数器
Counter是对字典类型的补充,用于追踪值的出现次数。
ps:具备字典的所有功能 + 自己的功能
例子:import collections
f1 = collections.Counter('asdwqewqdsadsadsa')
print(f1)结果:Counter({'a': 4, 'd': 4, 's': 4, 'q': 2, 'w': 2, 'e': 1})#这个例子就是统计出元素出现的次数(2)有序字典class OrderedDict(dict):
orderdDict是对字典类型的补充,他记住了字典元素添加的顺序,从而使字典变得有序
例子:
import collections
f1 = collections.OrderedDict()
f1["a"] = 3
f1["c"] = 2
f1["b"] = 1
f2 = {}
f2["a"] = 3
f2["c"] = 2
f2["b"] = 1
print(f1,f2)结果:OrderedDict([('a', 3), ('c', 2), ('b', 1)]) {'b': 1, 'c': 2, 'a': 3}
从上面就可以发现,想同值的字典使用OrderedDict就按照添加顺序进行排序
内部机制:
在正常的字典中f2这么排序的:
f2 = {'b': 1, 'c': 2, 'a': 3}
而使用OrderedDict后他会生成一个列表来保存字典添加的顺序
f1 = {'b': 1, 'c': 2, 'a': 3}
f1_list = ["a","c","b"]
这样就可以通过for循环来得到有序的字典
不要较真哈
(3)默认字典(defaultdict)
defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型。
import collections
f1 = collections.defaultdict(list)
f1["a"].append(1)
print(f1)上面的和下面的效果相等,所以defaultidict是把value值设置成默认为list类型也就是列表类型
f1 = {}
f1["a"] = []
f1["a"].append(1)(4)可命名元组namedtuple
也就是将值提前起个名字,然后传值,主要用于平面图想x,y轴
import collections atuple = collections.namedtuple("atuple",['x','y','z'])
new = atuple(1,2,3,)
print(new)atuple(x=1, y=2, z=3)(5)双向队列collections.deque
双向队列为,例如有一个列表,这个列表呢 可以从左面和右面取数据,也可以从左面和右面同时加数据
方法:
(1)def append(self, *args, **kwargs): 添加右侧
# real signature unknown
""" Add an element to the right side of the dequ‘. """
pass(2)def appendleft(self, *args, **kwargs): 添加到队列的左侧
# real signature unknown
""" Add an element to the left side of the deque. """
pass(3)clear(self, *args, **kwargs): 清除
real signature unknown
"" Remove all elements from the deque. """
ass(4)f count(self, value): 元素出现的的个数
real signature unknown; restored from __doc__
""" D.count(value) -> integer -- return number of occurrences of value """
return 0(5)def extend(self, *args, **kwargs):扩展右添加
# real signature unknown
""" Extend the right side of the deque with elements from the iterable """
pass(6)def extendleft(self, *args, **kwargs): 扩展左添加
# real signature unknown
""" Extend the left side of the deque with elements from the iterable """
pass(7)def pop(self, *args, **kwargs): 从右侧取出元素
# real signature unknown
""" Remove and return the rightmost element. """
pass(8)def popleft(self, *args, **kwargs):从左侧取出元素
real signature unknown
""" Remove and return the leftmost element. """
pass(9)def remove(self, value): 删除指定元素
# real signature unknown; restored from __doc__
""" D.remove(value) -- remove first occurrence of value. """
pass(10)def reverse(self): 翻转
# real signature unknown; restored from __doc__
""" D.reverse() -- reverse *IN PLACE* """
pass
三、单向队列Queue
q =Queue.Queue(10) 创建单向队列,括号中为队列中可放入元素的个数q.put 添加元素q.get 取出元素
- 队列的特点:谁先进入谁先出去
- 栈的特点:弹夹结构,后加的先出
python成长之路第二篇(4)_collections系列的更多相关文章
- Python成长之路第二篇(1)_数据类型内置函数用法
		数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> a ... 
- Python成长之路第二篇(3)_字典的置函数用法
		字典的置函数用法(字典dict字典中的key不可以重复) class dict(object): """ dict() -> new empty dictionar ... 
- Python成长之路第二篇(2)_列表元组内置函数用法
		列表元组内置函数用法list 元组的用法和列表相似就不一一介绍了 1)def append(self, p_object):将值添加到列表的最后 # real signature unknown; r ... 
- Python人工智能之路 - 第二篇 : 算法实在太难了有现成的直接用吧
		本节内容 预备资料: 1.FFmpeg: 链接:https://pan.baidu.com/s/1jonSAa_TG2XuaJEy3iTmHg 密码:w6hk 2.baidu-aip: pip ins ... 
- Python成长之路第一篇(4)_if,for,while条件语句
		有了以上的基本基础,已经上面写的几个小练习,大家肯定有很多的不满,比如查询为什么查询一次就退出了呢?下面我们来学习条件语句 一.万恶的加号 以前我们在print的时候如果要加上变量都有是使用+来作为连 ... 
- Python成长之路第一篇(2)-初识列表和元组
		可以将列表和元组当成普通的“数组”,他能保存任意数量任意类型的Python对象,和数组一样都是通过数字0索引访问元素,列表和元组可以存储不同类型的对象,列表和元组有几处重要区别.列表元素用([])包括 ... 
- 我的Python成长之路---第二天---Python基础(7)---2016年1月9日(晴)
		再说字符串 一.字符串的编码 字符串的编码是个很令人头疼的问题,由于计算机是美国人发明的,他们很理所当然的认为计算机只要能处理127个字母和一些符号就够用了,所以规定了一个字符占用8个比特(bit)也 ... 
- Python成长之路第一篇(2)__初识列表和元组
		可以将列表和元组当成普通的“数组”,他能保存任意数量任意类型的Python对象,和数组一样都是通过数字0索引访问元素,列表和元组可以存储不同类型的对象,列表和元组有几处重要区别.列表元素用([])包括 ... 
- python成长之路第一篇(5)文件的基本操作
		一.三元运算 我们在上章学习的if,,else,,有一种简便的方法 他的表达式是这样的:变量 = 值1 if 条件 else 值2 解释过来就是如果aaa等于sss则输出值1否则输出值2 二.类的概念 ... 
随机推荐
- 《javascript高级程序设计》笔记4.1.4:检测类型
			javascript类型检测这节主要讲了typeof和instanceof操作符. 一.typeof操作符: 1.typeof在检测基本数据类型时十分方便,针对4种基本数据类型string.numbe ... 
- 整合spring2 + struts1.2 + hibernate3.2 .
			1 可恶的myeclipse 为了开发方便,我选择了myeclipse,因为它集成了很多框架,而不致于自己去倒入很多lib.但就是因为这一点,成了我这次组合的致命伤.SSH因为其是开源框架,自 ... 
- ACM题目推荐(刘汝佳书上出现的一些题目)[非原创]
			原地址:http://blog.csdn.net/hncqp/article/details/1758337 推荐一些题目,希望对参与ICPC竞赛的同学有所帮助. POJ上一些题目在http://16 ... 
- wordpress教程之文章页single.php获取当前文章所属分类
			之所以要发这篇文章,是因为这个方法适用于: WP默认文章分类 手动添加的自定文章分类 插件(custom post type ui)添加的自定义文章分类(含taxonomy) 方法目的:在文章模板中, ... 
- 【转】WPF - 第三方控件
			WPF - 第三方控件 目前第三方控件在网上形成巨大的共享资源,其中包括收费的也有免费的,有开源的也有不开源的,合理的使用第三方控件将使项目组的工作事半功倍.比如项目中有些复杂的业务逻辑.有些绚丽的效 ... 
- 我的第一个MFC的ArcGIS Engine程序
			原文 http://blog.csdn.net/zzahkj/article/details/9003518 (第一版,以VC++6.0+AE9.3为例) 首次,学习MFC,写个笔记,MFC还是挺好学 ... 
- GNU C - 关于8086的内存访问机制以及内存对齐(memory alignment)
			一.为什么需要内存对齐? 无论做什么事情,我都习惯性的问自己:为什么我要去做这件事情? 是啊,这可能也是个大家都会去想的问题, 因为我们都不能稀里糊涂的或者.那为什么需要内存对齐呢?这要从cpu的内存 ... 
- Java中的native方法
			博客引用地址:Java中的native方法 今天花了两个小时把一份关于什么是Native Method的英文文章好好了读了一遍,以下是我依据原文的理解. 一. 什么是Native Method 简单地 ... 
- openstack API debug OpenstackEveryProject_CLI,curl_based
			1,基于Openstack 每个服务组件client客户端,eg,nova 客户端软件包名称是python-novaclient, 别的都一样,把python-novaclient (nova替换成组 ... 
- Java根据年份算出所属的生肖。
			一个小程序~ public String getYear(Integer year){ if(year<1900){ return "未知"; } Integer start ... 
