一、collections系列:

collections其实是python的标准库,也就是python的一个内置模块,因此使用之前导入一下collections模块即可,collections在python原有的数据类型str(字符串), int(数值), list(列表) tuple(元组), dict(字典)的基础之上增加一些其他的数据类型即方法,具体如下:

1、Counter(dict):计数器,扩展的字典的方法,对指定数据的字串做统计出现的次数,结果是一个元组,如:

 collections.Counter

2、most_common():不加参数以列表里面加元组方式显示每个字符串出现多少次,加数字表示最少出现括号里面传递的数字次数,如:

 most_common

3、collections.items:以字典结果方式显示每个元素出现的次数生成一个迭代器,可以使用for循环遍历每个元素:,如下:

 items

4、collections.elements:获取每个到每个元素并生成一个迭代器,可以使用for循环遍历每个元素:

 elements

5、collections.update:对同一个元素的出现次数进行增加更新:

 update

5、subtract:对同一个元素做减处理,如下:

 subtract

6、del:删除指定的元素:会删除元素和元素的计数值:

 del

7、get:获取指定元素出现的次数:

 get

8.copy:是浅copy,浅copy只copy第一层,变量里面包含的列表或字典的id值和以前是不变的:

 copy

9、defaultdict:默认字典,在创建的时候指定该字典的默认数据格式,可以是列表、元组或列表等,如:

 defaultdict

10.OrderedDict:有序字典,默认创建的字典是无需的,可以使用OrderedDict创建字典,这样字典内部会对key进行排序显示,key的顺序将会固定保持不变,如下:

 OrderedDict

有序字典的常用操作:

pop、删除指定的字典key,并返回被删除的value

 pop

keys:获取有序字典的全部key,方法和字典是一样的:

 keys

values:获取有序字典所有的值,方法和字典是一样的:

 values

items:获取有序字典所有的键值对,方法和字典是一样的:

move_to_end:将指定的键值对移动到最后的位置:

 move_to_end

clear:清空有序字典的所有键值对:

 clear

11、namedtuple:可命名元组,可以给元组命名,在通过元素的名称获取到元素的值,也可以使用元素的下标获取到元素的值:

 namedtuple

12、queue.Queue:单向队列,先进先出,类似于弹夹,先放去的子弹先打出来,只能从左边进行操作:

put,get,qsize,full:插入数据,获取数据,查看队列长度,判断队列是否已经满了:

 put,get,qsize,full

empty:判断队列是否为空,是返回True,否返回False:

 empty

put_nowait:在队列可以插入的时候不阻塞插入数据数据,可以理解为不按排队顺序插队到最前面put数据:

get_nowait:在队队列有时间后不阻塞获取数据,可以理解为不按排队顺序插队到最前面get数据:

 put_nowait,get_nowait

13、queue.deque:双向队列,可以左右两侧都进行操作的队列与单向队列最大的不同是可以从队列左右两侧都进行操作,

appendleft:添加元素到最左侧:

append:添加元素做最右侧,即末尾:

 append,appendleft

count:统计队列中某个元素出现的次数,而不是某个字符串;

copy:是浅copy,只拷贝第一层,其内部包含的元素和列表的id是一样的

 count,copy

extend:对原队列进行右侧扩展,扩展的元素是是字符串,而append附加是元素,一个元素可以包含多个字符串,如果extend传递的一个包含多个字符串的元素,则会展开元素为多个字符串进行添加:

extendleft:对原队列进行左侧侧扩展,其他同extend

 extend,extendleft

index:根据value获取其下标位:

insert:将元素插入到指定的下标位置:

 insert,index

reverse:将整个队列顺序反转显示,即倒数第一个为第一个,倒数第二个为第二个,一次类推

rotate:将最后指定数量的几个元素放在最前的位置

 reverse,rotate

pop:从右侧删除元素并返回被删除的元素

popleft:从左侧删除元素并返回被删除的元素

 pop,popleft

remove:根据value删除元素

clear:清空整个队列

 remove,clear

二:深浅copy:

copy:称为浅copy,默认的copy都是浅coyp,即没有特定使用深copy的操作,浅copy只copy第一层,即不copy内部的列表、字典或元组(假如有以上元素),可以用元素的id区分

deepcopy:深copy,会copy每一层的元素,包含copy内部的元组、字段或列表

假如copy对象都是字符串:

 字符串深浅copy

假如copy对象有列表并修改列表的值:

 带层次的列表深浅copy

假如copy对象是字典:

 带层次的字典深浅copy

深浅copy总结:

1、假如copy源只是字符串,则深浅copy没有区别,只是copy后变量名称的id值不一样,其内部的元素的id值是一致的。

2、假如copy是列表组成,则会将内部的列表完全copy一份,其内部的元素的id会指向copy源的底层元素,假如对元素做了一份浅copy和深copy,则无论是修改了copy源的底层元素、浅copy的底层元素还是深copy的底层元素,都会影响到元素本身和其他copy的元素改变。

 3、假如copy源是字典,则深会对字典的key和value完全copy,浅copy依然是对内部的元素做链接到copy源,修改copy源和浅copy只会影响浅copy源和浅copy,不会影响到深copy,同样修改深copy也不会影响到以上浅copy和浅copy源本身。

三:yield 和return:

yield:是一个生成器,在函数里用于记住上一次的操作,下次在执行的时候从当前的位置继续执行,生成器生成的值需要用for循环才能访问到:

 yield

return:函数的返回值,遇到return的时候函数会停止继续运行,并以return的返回值赋值给函数本身,一个函数只能有一个return,多余的也不会执行,因为第一个return之后函数就停止运行了。

 return

四:集合(set)

set的元素是不能重复出现的,而且是无序排列的,如创建一个包含重复字串的集合:

 创建set

set的常用操作方法:

add:向集合里面添加元素:

remove:删除指定的元素名,且没有返回值

pop:随机删除集合的元素并返回被删除的值

 add、remove、pop

clear:清空元素列表:

copy:浅copy为另一个集合:

update:更新现有的集合:

 update、copy、clear

difference:用两个集合作比较,删除传递的参数并生成一个新的集合,只返回非传递的集合里没有的元素,并生成一个新的序列,如:

 difference

difference_update:删除原集合有并且传递的集合都有的值,这是在原集合直接操作的,删除完成以后查看原集合的值是否有变化:

 difference_update

discard:丢弃一个指定的元素:

 discard

intersection:交集运算,即取原集合和传递的集合共同都有的元素,并产生一个新的set集合:

 intersection

intersection_update:交集运算,即取原集合和传递的集合共同都有的元素,并直接赋值给原集合:

 intersection_update

isdisjoint:判断是否没有交集,即判断是否没有同样的元素,没有返回True,有返回False:

 isdisjoint

issubset:判断是否子集,即原集合是否传递集合的子集:

 issubset

issuperset:与issubset相反,判断是否父集:

 issuperset

symmetric_difference:取出来两个集合相互没有的元素,并将结果赋值给一个新的集合:

 symmetric_difference

symmetric_difference_update:取出来两个集合相互没有的元素,并将结果赋值给原集合而不是赋值给一个新的集合:

 

union:去两个几个的并集,等于将两个集合的元素全部取出来并去重,最终每个元素只留一个:

 union

有一个数据,需要通过集合的方式计算出需要更新、添加和删除的数据,最终要求是原来的没有新数据有就添加,原来有新的也有就更新,原来有新的没有删除,具体如下:

 set集合小试牛刀

python成长之路——第三天的更多相关文章

  1. python成长之路第三篇(1)_初识函数

    目录: 函数 为什么要使用函数 什么是函数 函数的返回值 文档化函数 函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多 ...

  2. python成长之路第三篇(4)_作用域,递归,模块,内置模块(os,ConfigParser,hashlib),with文件操作

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.作用域 2.递归 3.模块介绍 4.内置模块-OS 5.内置模块-ConfigParser 6.内置模块-has ...

  3. python成长之路第三篇(3)_内置函数及生成器迭代器

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.lambda表达式 2.map内置函数 3.filter内置函数 4.reduce内置函数 5.yield生成器 ...

  4. python成长之路第三篇(2)_正则表达式

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.什么是正则表达式,python中得正则简介 2.re模块的内容 3.小练习 一.什么是正则表达式(re) 正则表 ...

  5. 我的Python成长之路---第三天---Python基础(12)---2016年1月16日(雾霾)

    四.函数 日常生活中,要完成一件复杂的功能,我们总是习惯把“大功能”分解为多个“小功能”以实现.在编程的世界里,“功能”可称呼为“函数”,因此“函数”其实就是一段实现了某种功能的代码,并且可以供其它代 ...

  6. 我的Python成长之路---第三天---Python基础(11)---2016年1月16日(雾霾)

    三.深浅拷贝 在Python中将一个变量的值传递给另外一个变量通常有三种:赋值.浅拷贝以及深拷贝 讨论深浅拷贝之前我们把Python的数据类型分为基本数据类型包括数字.字符串.布尔以及None等,还有 ...

  7. 我的Python成长之路---第三天---Python基础(13)---2016年1月16日(雾霾)

    五.Python的常用的内置函数 Python为我们准备了大量的内置函数,如下图所示 这里我们只讨论红框内的内置函数 abs(x) 返回一个数的绝对值(模),参数可以是真说或浮点数 >>& ...

  8. 我的Python成长之路---第三天---Python基础(10)---2016年1月16日(雾霾)

    二.collections collections是对Python现有的数据类型的补充,在使用collections中的对象要先导入import collections模块 1.Counter——计数 ...

  9. 我的Python成长之路---第三天---Python基础(9)---2016年1月16日(雾霾)

    一.集合 set和dict类似,也是一组key的集合,但不存储value.由于key不能重复,所以,在set中,没有重复的key. 集合和我们数学中集合的概念是一样的,也有交集,并集,差集,对称差集等 ...

随机推荐

  1. elasticsearch-5.0.0初见

    基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味着,从索引一个文档 ...

  2. 使用Apache的rewrite技术

    做PHP项目中需要用到URL重定向技术,基本上的需求就是把比如 /user/heiyeluren 重定向到 /user.php?uid=heiyeluren 之类的URL上,当然,你也可以把 /art ...

  3. python函数abs()

    详解: 返回绝对值 参数可以是:负数.正数.浮点数或者长整形 实例: abs(-1.2) #返回 1.2 abs(1.2) #返回 1.2 abs(-11216.5) #返回 11216.5 abs( ...

  4. MVC-03 控制器(3)

    Controller负责处理浏览器来的所有要求,并决定响应什么属性给浏览器,以及协调Model与View之间的数据传递.在ASP.NET MVC中有好几种传递数据给视图的方式,例如从ASP.NET M ...

  5. 使用django+celery+RabbitMQ实现异步执行

    http://www.yu180.com/group/view/259 推荐一个解决框架 https://github.com/maccman/juggernaut Realtime server p ...

  6. 远程管理服务SSHD

    安装SSH yum install openssh

  7. cocos2dx中的精灵CCSprite

    什么是精灵(CCSprite),在官网文档中是这么定义的 Sprites A cocos2d CCSprite is similar to sprites you find in other game ...

  8. p2.js物理引擎学习

    P2简介 P2是一款基于Javascript编写的HTML5 2D物理引擎,和Box2D.Nape等2D物理引擎一样,P2集成了各种复杂的物理公式和算法,可以帮助我们轻松的实现碰撞.反弹等物理现象的模 ...

  9. android 支持分组和联系人展示的一个小样例

    先看效果图: 要实现这个效果,activity必须实现ExpandableListActivity @Override public void onCreate(Bundle savedInstanc ...

  10. http://blog.csdn.net/baimafujinji/article/details/10931621

    书接上文,本文章是该系列的第二篇,按照总纲中给出的框架,本节介绍三个中值定理,包括它们的证明及几何意义.这三个中值定理是高等数学中非常基础的部分,如果读者对于高数的内容已经非常了解,大可跳过此部分.当 ...