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

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

Dict(字典)

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

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

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

1.

python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第1张图片
屏幕快照 2019-03-29 下午2.20.20的副本 2.png

2.

python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第2张图片
屏幕快照 2019-03-29 下午2.42.38.png

3. 字典常用方法
python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第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.
python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第4张图片
屏幕快照 2019-03-29 下午8.11.02.png

2.

python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第5张图片
屏幕快照 2019-03-29 下午8.12.57.png

3.

python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第6张图片
屏幕快照 2019-03-29 下午8.14.44.png

collections

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

  • collections内置容器


    python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第7张图片
    屏幕快照 2019-03-29 下午8.42.40.png

1. namedtuple

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


    python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第8张图片
    屏幕快照 2019-03-29 下午8.47.43.png

2.deque

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


    python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第9张图片
    屏幕快照 2019-03-29 下午8.47.43.png

3.defaultdict

  • 返回一个新的类字典对象。 defaultdict是内置dict类的子类。它会覆盖一个方法并添加一个可写实例变量.其余功能与dict类相同
python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第10张图片
屏幕快照 2019-03-29 下午9.52.58.png
python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第11张图片
屏幕快照 2019-03-29 下午9.59.02.png
python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第12张图片
屏幕快照 2019-03-29 下午10.01.30.png

4.OrderedDict

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


    python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第13张图片
    屏幕快照 2019-03-29 下午10.12.40.png

functools

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

1. wraps

  • Python装饰器(decorator)在实现的时候,被装饰后的函数其实已经是另外一个函数了(函数名等函数属性会发生改变),为了不影响,Python的functools包中提供了一个叫wraps的decorator来消除这样的副作用。写一个decorator的时候,最好在实现之前加上functools的wrap,它能保留原有函数的名称和docstring。
python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第14张图片
屏幕快照 2019-04-11 下午2.12.59.png
屏幕快照 2019-04-11 下午2.13.28.png
python基础类型&常用内置库:dict(字段),set(集合),collections,functools_第15张图片
屏幕快照 2019-04-11 下午2.14.17.png
屏幕快照 2019-04-15 下午2.03.12.png

你可能感兴趣的:(python基础类型&常用内置库:dict(字段),set(集合),collections,functools)