常用模块,python之常用模块

目录:

                collections模块                                                           

  在放权数据类型(dict、list、set、tuple)的底子上,collections模块还提供了多少个附加的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。

    一.namedtuple:
生成能够接纳名字来拜访元素内容的tuple

    二.deque:
双端队列,能够神速的从别的壹侧追加和生产对象

    三.Counter: 计数器,主要用来计数

    四.OrderedDict: 有序字典

    5.defaultdict: 带有默许值的字典

 1.time和datetime模块

  namedtuple (名称元祖)

  描述壹类东西的时候,那类东西都有壹样的性状,想平素用特色的名字就讲述这么些值的的时候就可以用命名元祖

  namedtuple是贰个函数,它用来创建七个自定义的tuple对象,并且分明了tuple要素的个数,并得以用属性而不是索引来引用tuple的某部成分。

那样1来,大家用namedtuple能够很有益于地定义一种数据类型,它抱有tuple的不变性,又足以根据属性来引用,使用尤其有益于。

namedtuple定义

  #namedtuple('名称', [属性list]):
  Circle = namedtuple('Circle', ['x', 'y', 'r'])

澳门新萄京 1澳门新萄京 2

1 from collections import namedtuple
2 point = namedtuple('Point', ['x', 'y'])
3 p = point(3, 4)
4 
5 print(p.x)
6 print(p.y)

View Code

 2. random模块

deque (双端队列)

   使用list储存数据时,按索引访问成分一点也不慢,可是插入和删除元素就异常慢了,因为list是线性存款和储蓄,数据量大的时候,插入和删除成效极低。

  
deque是为了火速落到实处插入和删除操作的双向列表,适合用于队列和栈

deque除却落实list的append()pop()外,还支持appendleft()popleft(),那样就足以10分赶快地往尾部添加或删除成分

澳门新萄京 3澳门新萄京 4

1 from collections import deque
2 
3 dq = deque(['a', 'b', 'c'])
4 dq.append('x')
5 dq.appendleft('y')
6 
7 dq.pop()
8 dq.popleft()
9 print(dq)

deque

三. OS模块(是与操作系统交互的1个接口)

OrderedDict

  使用dict时,Key是冬日的。在对dict做迭代时,大家不能够鲜明Key的次第。

  如若要保证Key的相继,能够用OrderedDict

  注意,OrderedDict的Key会依据插入的顺序排列,不是Key本人排序:

澳门新萄京 5澳门新萄京 6

 1 from collections import OrderedDict
 2 
 3 d = dict([('a', 2), ('c', 4), ('b', 6)])
 4 # dict的key是无序的
 5 print(d)
 6 
 7 od = OrderedDict([('a', 1), ('c', 3), ('b', 5)])
 8 # OrderedDict的key是有序的
 9 print(od)
10 
11 od['z'] = 6
12 od['y'] = 7
13 od['x'] = 8
14 print(od.keys())  # 按照插入的Key的顺序返回
15 
16 
17 {'a': 2, 'c': 4, 'b': 6}
18 OrderedDict([('a', 1), ('c', 3), ('b', 5)])
19 odict_keys(['a', 'c', 'b', 'z', 'y', 'x'])

OrderedDict

四. sys模块(sys模块是与python解释器交互的叁个接口)

defaultdict

  使用dict时,如果引用的Key不设有,就会抛出KeyError。假如希望key不存在时,再次来到三个私下认可值,就足以用defaultdict

  注意暗许值是调用函数重临的,而函数在创立defaultdict指标时传出。

   
除了在Key不设有时再次来到私下认可值,defaultdict的其它表现跟dict是全然1样的

澳门新萄京 , 

澳门新萄京 7澳门新萄京 8

 1 from collections import defaultdict
 2 values = [11, 22, 33, 44, 55, 66, 77, 88, 99]
 3 my_dict = defaultdict(list)
 4 
 5 for value in values:
 6     if value > 66:
 7         my_dict['k1'].append(value)
 8     elif value < 66:
 9         my_dict['k2'].append(value)
10 
11 print(my_dict)
12 
13 
14 defaultdict(<class 'list'>, {'k2': [11, 22, 33, 44, 55], 'k1': [77, 88, 99]})

defaultdict

 

5.类别化模块 

Counter

 

  Counter目标是用来跟踪值出现的次数。它是贰个冬日的容器类型,以字典的键值对形式储存,其七月素作为key,其计数作为value。计数值能够是自由的Interger(包罗0和负数)。Counter类和别的语言的bags或multisets很相像。

澳门新萄京 9澳门新萄京 10

1 from collections import Counter
2 c = Counter('hello')
3 c1 = Counter({'a': 4, 'b': 2})
4 c2 = Counter(a=4, b=6)
5 print(c1)
6 print(c)
7 print(c2)

Counter

  当所访问的键不设有时,再次回到0,而不是KeyError;不然重临它的计数。

澳门新萄京 11澳门新萄京 12

1 from collections import Counter
2 c = Counter('abcdefgab')
3 print(c['a'])
4 print(c['h'])
5 print(c['d'])
6 
7 2
8 0
9 1

计数值的拜会

  能够运用1个iterable对象或许另3个Counter对象来更新键值。

  计数器的更新包罗扩充和削减三种。个中,扩充应用update()方法和压缩则应用subtract()方法

澳门新萄京 13澳门新萄京 14

 1 from collections import Counter
 2 c = Counter('which')
 3 c.update('witch')
 4 print(c['h'])
 5 
 6 d = Counter('watch')
 7 c.update(d)
 8 print(c['h'])
 9 
10 c = Counter('which')
11 c.subtract('witch')
12 print(c['h'])
13 
14 d = Counter('watch')
15 c.subtract(d)
16 print(c['a'])
17 
18 
19 3
20 4
21 1
22 -1

View Code

 

6.hashlib模块

键的修改和删除

当计数值为0时,并不意味着成分被删去,删除成分应当选取del。 

键的删减

>>> c = Counter("abcdcba")
>>> c
Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})
>>> c["b"] = 0
>>> c
Counter({'a': 2, 'c': 2, 'd': 1, 'b': 0})
>>> del c["a"]
>>> c
Counter({'c': 2, 'b': 2, 'd': 1})

 

7.configparser

elements()

归来1个迭代器。成分被再次了有个别次,在该迭代器中就含有几个该因素。成分排列无规定顺序,个数小于一的成分不被含有。

elements()方法 

>>> c = Counter(a=4, b=2, c=0, d=-2)
>>> list(c.elements())
['a', 'a', 'a', 'a', 'b', 'b']

 

捌.logging  (记录日志的模块)

most_common([n])

回到2个TopN列表。若是n没有被钦点,则赶回全数因素。当多少个成分计数值相同时,排列是无规定顺序的。

most_common()方法

 

>>> c = Counter('abracadabra')
>>> c.most_common()
[('a', 5), ('r', 2), ('b', 2), ('c', 1), ('d', 1)]
>>> c.most_common(3)
[('a', 5), ('r', 2), ('b', 2)] 

 

玖.collections模块(使用counter进行记数总计)

浅拷贝copy

浅拷贝copy

>>> c = Counter("abcdcba")
>>> c
Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})
>>> d = c.copy()
>>> d
Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})

 

模块:

  计算机程序的开发进度中,随着程序代码越写愈多,在三个文书里代码就会更长,越来越不便于保险。为了编制可保证的代码,大家把许多函数分组,分别放到分歧的公文里,这样,每个文件包括的代码就相对较少,很多编制程序语言都选用那种协会代码的艺术。在
Python 中,3个.py 文件就称为二个模块(Module)。

模块分类:

  内置模块  python安装时自带的

  扩充模块  外人写好的,安装之后方可间接采用

        itchat模块(和微信相关), beautifulsoap(爬虫模块),
selenium(网页自动化测试工具)

        django tornado(框架)

  自定义模块 本身写的模块 

算术和聚众操作

+、-、&、|操作也足以用于Counter。个中&和|操作分别再次来到五个Counter对象各要素的最小值和最大值。供给小心的是,获得的Counter对象将去除小于1的成分。

Counter对象的算术和汇聚操作

>>> c = Counter(a=3, b=1)
>>> d = Counter(a=1, b=2)
>>> c + d  # c[x] + d[x]
Counter({'a': 4, 'b': 3})
>>> c - d  # subtract(只保留正数计数的元素)
Counter({'a': 2})
>>> c & d  # 交集:  min(c[x], d[x])
Counter({'a': 1, 'b': 1})
>>> c | d  # 并集:  max(c[x], d[x])
Counter({'a': 3, 'b': 2})

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注