python常用模块

Python数据结构模块:

  • collections
  • functools
  • heapq
  • operator
  • itertools

collections

其是日常工作中的重点、高频模块

  • 计数器(Counter)
  • 双向队列(deque)
  • 默认字典(defaultdict)
  • 有序字典(OrderedDict)
  • 可命名元组(namedtuple)

Counter

Counter作为字典dicit()的一个子类用来进行hashtable计数,将元素进行数量统计,计数后返回一个字典,键值为元素,值为元素个数。

常用方法:

方法名 描述
most_common(int) 按照元素出现的次数进行从高到低的排序,返回前int个元素的字典
elements 返回经过计算器Counter后的元素,返回的是一个迭代器
update 和set集合的update一样,对集合进行并集更新
substract 和update类似,只是update是做加法,substract做减法,从另一个集合中减去本集合的元素
iteritems 返回由Counter生成的字典的所有item
iterkeys 返回由Counter生成的字典的所有key
itervalues 返回由Counter生成的字典的所有value

deque

deque属于高性能的数据结构之一,常用方法如下:

方法 描述
append 队列右边添加元素
appendleft 队列左边添加元素
clear 清空队列中的所有元素
count 返回队列中包含value的个数
extend 队列右边扩展,可以是列表、元组或字典,如果是字典则将字典的key加入到deque
extendleft 同extend,在左边扩展
pop 移除并返回队列右边的元素
popleft 移除并返回队列左边的元素
remove(value) 移除队列第一个出现的元素
reverse 队列的所有元素进行反转
rotate(n) 对队列数进行移动,循环移动

defaultDict

 默认字典,字典的一个子类,继承所有字典的方法,默认字典在进行定义初始化的时候得指定字典值有默认类型

OrderedDict

#输出按输入的顺序输出

1
2
3
4
5
6
7
8
9
10
11
12
from collections import OrderedDict
def testOrderDict():
dic2 = OrderedDict()
dic2['d'] = 7
dic2['c'] = 10
dic2['b'] = 9
dic2['a'] = 8

for k, v in dic2.items():
print('有序字典:%s:%s' %(k,v))
if __name__ == "__main__":
testOrderDict()

输出:

image-20210911094136855

namedtuple

namedtuple由自己的类工厂namedtuple()进行创建,而不是由表中的元组进行初始化,通过namedtuple创建类的参数包括类名称和一个包含元素名称的字符串

常用方法示例:

1
2
3
4
5
6
7
8
9
from collections import namedtuple
def testNamedTuple():
p = namedtuple("person","name,age,sex")
print(p)
lrr = p("lrr",10,"male")
print(lrr)
print(lrr.age)
if __name__ == "__main__":
testNamedTuple()

输出:

image-20210911095532808

functools

参考文档:functools — 高阶函数和可调用对象上的操作 — Python 3.7.12 文档

functools 模块应用于高阶函数,即——参数或(和)返回值为其他函数的函数。通常来说,此模块的功能适用于所有可调用对象。

cmp_to_key

将(老式的)比较函数转换为新式的[key function](术语对照表 — Python 3.7.12 文档)。在类似于 sorted()min()max()heapq.nlargest()heapq.nsmallest()itertools.groupby() 等函数的 key 参数中使用。

比较函数意为一个可调用对象,该对象接受两个参数并比较它们,结果为小于则返回一个负数,相等则返回零,大于则返回一个正数。key function则是一个接受一个参数,并返回另一个用以排序的值的可调用对象。

1
sorted(iterable, key=cmp_to_key(locale.strcoll))  # locale-aware sort order
作者

bd160jbgm

发布于

2021-09-10

更新于

2021-09-12

许可协议