最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

python collections模块-实践源代码

XAMPP案例 admin 11浏览 0评论
zzzzzv00000027
你用过python 的collections 模块吗?列举几个常用的类。
python标准库collections是常用的模块,包含几个高性能容器数据类型(High-performance container datatypes)。
1、Counter(计数器)
Counter类继承自dict,用于统计seq类型数据的元素频率。
from collections import Counter
data = 'abbccc'
c = Counter(data)
#打印数量最多的两个字符
print(c.most_common(2))
# [('c', 3), ('b', 2)]
#增量添加字符
c.update('cd')
print(sorted(c.items(), key=lambda x: x[1], reverse=True))
# [('c', 4), ('b', 2), ('a', 1), ('d', 1)]
#直接更新字符数量
c['d']+=2
print(c['d'])
2、defaultdict
继承自dict,可以给key设置一个初始化方法,使用时无需再判断key是否存在,写起来更简洁。
from collections import defaultdict
data = 'abbccc'
# 使用dict统计词频
simple_dict = {}
for x in data:
    if x in simple_dict:  # 判断key是否存在
        simple_dict[x] = simple_dict[x] + 1
    else:
        simple_dict[x] = 1
# 使用defaultdict统计词频
default_dict = defaultdict(lambda: 0)  # 设置初始化方法
for x in data:
    default_dict[x] += 1
3、deque(双端队列)
双端队列可在O(1) 的时间在队列头部或尾部插入或删除数据。
from collections import deque
data = deque([6, 7, 8])
# 从队尾插入数据
data.append(9)
# deque([6, 7, 8, 9])
# 从对头插入数据
data.appendleft(5)
print(data)
# deque([5, 6, 7, 8, 9])
# 弹出队尾数据
data.pop()
print(data)
# deque([5, 6, 7, 8])
# 弹出队头数据
data.popleft()
print(data)
# deque([6, 7, 8])
4、其它类
OrderedDict:有序字典,按插入的顺序排序。
namedtuple: 是一个工厂函数,用于构造带字段名的元组(具名元组),访问具名元组时既可以通过index访问,也可以通过字段名访问,具名元组占用的内存和普通元组一样。

转载请注明:XAMPP中文组官网 » python collections模块-实践源代码