python基础类型&常用内置库:dict(字段),set(集合),collections,functools

  • Dict(字典)
  • Set(集合)
  • collections(内置库)
  • functools(内置库)

Dict(字典)

  • 字典视为一组无序的键值对,并要求键是唯一的(在一个字典中)。一对大括号创建一个空字典:{}。在括号内放置以逗号分隔的键值对列表,将初始键值对添加到字典中;这也是字典在输出上的写法。

  • 字典上的主要操作是使用某个键存储值并提取给定键的值。也可以删除带有del的键值对。

  • 字典对象的keys()方法以任意顺序返回字典中使用的所有键的列表(如果要对其进行排序,只需对其应用sorted()函数.要检查单个键是否在字典中,请使用in关键字。

1.

屏幕快照 2019-03-29 下午2.20.20的副本 2.png

2.

屏幕快照 2019-03-29 下午2.42.38.png

3. 字典常用方法
屏幕快照 2019-03-29 下午8.00.26.png

4. items()和iteritems()区别:

  • 字典的items()作用:是可以将字典中的所有项,以列表方式返回。因为字典是无序的,所以用items方法返回字典的所有项,也是没有顺序的.

  • 字典的iteritems()作用:与items方法相比作用大致相同,只是它的返回值不是列表,而是一个迭代器。

  • 迭代器: 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator;

    • list、dict、str虽然是Iterable,却不是Iterator。 为什么list、dict、str等数据类型不是Iterator?这是因为Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator的计算是惰性的,只有在需要返回下一个数据时它才会计算。
    • Iterator甚至可以表示一个无限大的数据流,例如全体自然数。而使用list是永远不可能存储全体自然数的。*
  • 总结

    • iteritems()方法在需要迭代结果的时候使用最适合,而且它的工作效率非常的高。
    • 在Python2.x中,iteritems() 用于返回本身字典列表操作后的迭代器【Returns an iterator on all items(key/value pairs) 】,不占用额外的内存。
    • 在Python 3.x 里面,iteritems()方法已经废除了。在3.x里用 items()替换iteritems() ,可以用于 for 来循环遍历。

Set(集合)

  • 集合对象是一组无序排列的可哈希的值,集合成员可以做字段中的键,集合支持用in和 not in操作符检查成员,有len()得到集合的大小,用for循环迭代集合的成员,记住:集合是无序的.
  • 集合有两种不同的类型, 可变集合(set)和不可变集合(frozenset)

1.
屏幕快照 2019-03-29 下午8.11.02.png

2.

屏幕快照 2019-03-29 下午8.12.57.png

3.

屏幕快照 2019-03-29 下午8.14.44.png

collections

  • 该模块实现了专门的容器数据类型,提供了Python的通用内置容器,dict,list,set和tuple的替代方法。

  • collections内置容器


    屏幕快照 2019-03-29 下午8.42.40.png

1. namedtuple

  • namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。这样一来,我们用namedtuple可以很方便地定义一种数据类型,它具备tuple的不变性,又可以根据属性来引用,使用十分方便
  • 例子


    屏幕快照 2019-03-29 下午8.47.43.png

2.deque

  • 使用list存储数据时,按索引访问元素很快,但是插入和删除元素就很慢了,因为list是线性存储,数据量大的时候,插入和删除效率很低。deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈;
  • deque除了实现list的append()和pop()外,还支持appendleft()和popleft(),这样就可以非常高效地往头部添加或删除元素。
  • 例子


    屏幕快照 2019-03-29 下午8.47.43.png

3.defaultdict

  • 返回一个新的类字典对象。 defaultdict是内置dict类的子类。它会覆盖一个方法并添加一个可写实例变量.其余功能与dict类相同
屏幕快照 2019-03-29 下午9.52.58.png
屏幕快照 2019-03-29 下午9.59.02.png
屏幕快照 2019-03-29 下午10.01.30.png

4.OrderedDict

  • 有序词典就像常规词典一样,但它们记住了项目的插入顺序。迭代有序字典时,将按照首次添加键的顺序返回项目。


    屏幕快照 2019-03-29 下午10.12.40.png

functools

  • functools模块用于高阶函数:作用于或返回其他函数的函数。通常,任何可调用对象都可以被视为用于此模块的功能。

1. wraps

  • Python装饰器(decorator)在实现的时候,被装饰后的函数其实已经是另外一个函数了(函数名等函数属性会发生改变),为了不影响,Python的functools包中提供了一个叫wraps的decorator来消除这样的副作用。写一个decorator的时候,最好在实现之前加上functools的wrap,它能保留原有函数的名称和docstring。
屏幕快照 2019-04-11 下午2.12.59.png
屏幕快照 2019-04-11 下午2.13.28.png
屏幕快照 2019-04-11 下午2.14.17.png
屏幕快照 2019-04-15 下午2.03.12.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容

  • 文/Bruce.Liu1 1.运算符 本章节主要说明Python的运算符。举个简单的例子 4 +5 = 9 。 例...
    BruceLiu1阅读 760评论 0 6
  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 1,615评论 0 1
  • 与或运算 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此...
    张文靖同学阅读 305评论 0 1
  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,652评论 0 5
  • 文:炫挚情的朝阳 远山青青天空碧 近树翠翠绿如洗 三三两两漫步悠 谁家汪汪闹嬉奇
    挚情_Zy2xe阅读 185评论 3 5