第二章:数据结构-collections:容器数据类型-Counter:统计可散列的对象(3)

2.2.2.3 算术操作
Counter实例支持用算术和集合操作来完成结果的聚集。下面这个例子展示了创建新Counter实例的标准操作符,不过也支持+=,-=,&=和|=等原地执行的操作符。

import collections

c1 = collections.Counter(['a','b','c','a','b','b'])
c2 = collections.Counter('alphabet')

print('C1:',c1)
print('C2:',c2)

print('\nCombined counts:')
print(c1 + c2)

print('\nSubtraction:')
print(c1 - c2)

print('\nIntersection(taking positive minimums):')
print(c1 & c2)

print('\nUnion(taking maximums):')
print(c1 | c2)

每次通过一个操作生成的新的Counter时,计数为0或负数的元素都会被删除。在c1和c2中a的计数相同,所以减法操作后它的计数为0。
运行结果:

C1: Counter({‘b’: 3, ‘a’: 2, ‘c’: 1})
C2: Counter({‘a’: 2, ‘l’: 1, ‘p’: 1, ‘h’: 1, ‘b’: 1, ‘e’: 1, ‘t’: 1})

Combined counts:
Counter({‘a’: 4, ‘b’: 4, ‘c’: 1, ‘l’: 1, ‘p’: 1, ‘h’: 1, ‘e’: 1, ‘t’: 1})

Subtraction:
Counter({‘b’: 2, ‘c’: 1})

Intersection(taking positive minimums):
Counter({‘a’: 2, ‘b’: 1})

Union(taking maximums):
Counter({‘b’: 3, ‘a’: 2, ‘c’: 1, ‘l’: 1, ‘p’: 1, ‘h’: 1, ‘e’: 1, ‘t’: 1})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值