python培训Day3 随笔

collections类

这个类相当于一个扩展包,包含针对字典、列表、元组等数据类型的一些扩展操作。

1、计数器Counter

#计数器可以列出字符串和列表中元素出现的个数,并以字典返回

>>> import collections
>>> li=[‘a‘,‘b‘,‘a‘,‘c‘,‘a‘,‘b‘,‘d‘,‘d‘,‘a‘]
>>> st=‘asdasdasdasdasda‘
>>> li_c=collections.Counter(li)
>>> st_c=collections.Counter(st)
>>> print li_c
Counter({‘a‘: 4, ‘b‘: 2, ‘d‘: 2, ‘c‘: 1})
>>> print st_c
Counter({‘a‘: 6, ‘s‘: 5, ‘d‘: 5})
#通过most_comm()方法可以指定显示出现次数排名前n位的元素
>>> print li_c.most_common(3)
[(‘a‘, 4), (‘b‘, 2), (‘d‘, 2)]

#update()方法可以将两个计数器的统计结果相加

>>> import collections
>>> li_a=[‘a‘,‘b‘,‘a‘,‘c‘,‘a‘]
>>> li_b=[‘b‘,‘c‘]
>>> li_a_co=collections.Counter(li_a)
>>> li_b_co=collections.Counter(li_b)
>>> print li_a_co
Counter({‘a‘: 3, ‘c‘: 1, ‘b‘: 1})
>>> print li_b_co
Counter({‘c‘: 1, ‘b‘: 1})
>>> li_a_co.update(li_b_co) 
>>> print li_a_co
Counter({‘a‘: 3, ‘c‘: 2, ‘b‘: 2})

2、有序字典

#有序字典的的操作方法和标准字典完全一致,唯一的区别就是有序字典里的key是可以按照顺序展现出来的,这是因为有有序字典其实就是在标准字典的基础上又将key都存入了一个列表,通过列表管理key

>>> import collections
>>> ord_dic=collections.OrderedDict()
>>> ord_dic={}

3、默认字典

#标准字典中value的值数据类型是需要提前定义的,否则直接向value中添加数据就可能有问题。例如如下需求:

有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。

即: {‘k1‘: 大于66 , ‘k2‘: 小于66}

#传统实现方式

li=[11,22,33,44,55,66,77,88,99,90]
list_a=[]
list_b=[]
dic={‘k1‘:list_a,‘k2‘:list_b}
for i in li:
    if i > 66:
        dic[‘k1‘].append(i)
    else:
        dic[‘k2‘].append(i)
print dic

#用默认字典方式

import collections
#coding:utf-8
li=[11, 22, 33,44,55,66,77,88,99,90]
#用默认字典方法提前定义value的数据类型
dic=collections.defaultdict(list)
for value in li:
    if value>66:
        dic[‘k1‘].append(value)
    else:
        dic[‘k2‘].append(value)
print dic

队列

#队列分为双向队列和单向队列,所有的队列都是有进程安全的。

双向队列是队列两边都可以增减操作,是FIFO模式的

单向队列只有一边可以增减操作,所以单向队列就是个堆栈。

时间: 2024-11-10 03:38:22

python培训Day3 随笔的相关文章

python培训Day6 随笔

今天讲了一些python的实用地方工具模块 用于记录日志的loggin模块 #!/usr/bin/env python #--*--coding:utf-8--*-- import logging logging.basicConfig(filename='wgwtest.log', #filename代表记录的日志文件名称                     format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(mes

python培训Day7 随笔

今天先讲了random模块的使用 这个模块的作用其实就是随机生数字,它下面有是三个方法 import random print random.random()  #默认方法是在0和1之间取一个随机带小数点的随机数 print random.randint(1,2) #在1和2之间随机取数字,可能是1也可能是2 print random.randrange(1,2) #在大于等于1切小于2的范围内取随机数,本例来说只能取到1这个值 0.240756960152 2 1 既然通过random模块可以

python培训Day1 随笔

1.python的数据类型 引用的时候  %s 表示引用字符串 %d 表示引用整数 %f 表示引用的带小数点的数字 2.循环 for循环可以用来遍历列表和元组里所有的元素 例如:for i in list_name print i while循环若后面跟一个True,那么循环将永远进行下去. 若后面跟一个Fales 则循环不执行.还有循环中如果出现break关键字 则循环马上回跳出,若出现continue则马上跳出当前循环从头开始下一轮循环. 例如: while True: word=raw_i

python培训Day2 随笔

今天主要讲解了常用的int.float.str.list.tuple.set类的常用方法.已经encode(编码)和decode(解码)的区别. 如上图所示,无论操作系统本身的字符集是什么样式的.在他们互相通信的时候都要将字符集转换成 Unicode这种万国码.这样他们的之间的沟通就不存在障碍了. 例如要将utf-8字符集的汉字'王'变成GBK格式的就需要如下操作 #先获取'王'的UTF-8编码 '王' '\xe7\x8e\x8b' #调用decode解码成unicode编码,带有u'的就是Un

python s12 day3

python s12 day3 深浅拷贝 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import copy # ######### 数字.字符串 ######### n1 = 123 # n1 = "i am alex age 10" print(id(n1)) # ## 赋值 ## n2 = n1 print(id(n2)) # ## 浅拷贝 ## n2 = cop

常州培训 day3 解题报告

第一题: 给出数轴正半轴上N个点的坐标和其权值,给出初始体力值M,人一开始在位置0,体力值会随着走过路程的增加而增加,走多少个单位的路消耗多少体力值.到每个点可以打掉,消耗的体力值就是其权值.求 最多能打掉多少点. N<=10000,其他<=10^18; 解题过程: 1.一开始就直接想到是贪心,首先人是不可能往左走的,否则不会最优.枚举最后停在哪个点,减去到这个点需要的体力,然后把这个点之前的所有点(包括这个店)的权值排个序,从小到大一个一个打,打到体力没有为止.复杂度分析:枚举N次,每次快拍

python培训入门之python爬虫

老男孩教育python培训教你用python爬虫开发技术 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫.下面老男孩python培训教您怎么利用好爬虫.         1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取

测试开发Python培训:模拟登录新浪微博-技术篇

测试开发Python培训:模拟登录新浪微博-技术篇 一般一个初学者项目的起点就是登陆功能的自动化,而面临的项目不同实现的技术难度是不一样的,poptest在做测试开发培训中更加关注技术难点,掌握技术实现思路,提高动手能力.这里通过大家都能接触到的系统新浪微博,作为案例. 模拟登录功能比较简单,很多人在学习自动化的时候都会以登陆来作为自己的第一个学习案例,有点像开发语言中第一段代码都是helloworld!一样.登陆简单的模拟登录,直接发post请求就OK,很容易实现. 这里用新浪微博,就是技术实

测试开发Python培训:抓取新浪微博抓取数据-技术篇

测试开发Python培训:抓取新浪微博抓取数据-技术篇 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的selenium的课程中,我们在培训的课程里讲python的语言,也是通过项目实战的方式进行讲解,前期分享了个新浪微博的登陆功能,这次在通过抓取新浪微博数据进一步讲解脚本.(大家对课程感兴趣,请加qq:564202718) 微博有发布微博功能,微博发布后需要验证内容,那么如何验证微博发布数据的正确性,首先要