门户网站有,网站导航条怎么做效果,对外贸易电商平台,安徽省建设工程信息网企业入口在Python内置模块collections中的Counter是字典子类。Counter不是字典#xff0c;但很像字典。
Counter具有字典的键和值#xff0c;键是各个元素#xff0c;值为该元素出现的次数。
Counter相当于计数器。常用于哈希映射#xff08;哈希表#xff09;。
from collection…Python内置模块collections中的Counter是字典子类。Counter不是字典但很像字典。
Counter具有字典的键和值键是各个元素值为该元素出现的次数。
Counter相当于计数器。常用于哈希映射哈希表。
from collections import Counter# 获取所有Counter对象的方法
[x for x in dir(Counter) if not x.startswith(_)]
# 结果
[clear, copy, elements, fromkeys, get,
items, keys, most_common, pop, popitem,
setdefault, subtract, total, update, values]初始化Counter
from collections import Counter# 初始化Counter
c Counter() # 结果Counter()
c Counter(good) # 结果Counter({o: 2, g: 1, d: 1})
c Counter([g,o,o,d]) # 结果Counter({o: 2, g: 1, d: 1})
c Counter({red: 4, blue: 2}) # 结果Counter({red: 4, blue: 2})
c Counter(cats4, dogs8) # 结果Counter({dogs: 8, cats: 4})type(c) # 结果class collections.Counter
将值设置为0、删除元素、清除所有元素
键值对中的值允许为0以及负数。将设置为0不能将元素删除。
del Counter(...)[键]删除元素。
Counter(...).pop()删除元素并返回删除元素的值。
Counter(...).popitem()随机删除元素返回元组。
Counter(...).clear()清除所有元素。
from collections import Counterc Counter(goods) # 结果Counter({o: 2, g: 1, d: 1, s: 1})# 将g元素的值设为0
c[g]0
c # 结果Counter({o: 2, d: 1, s: 1, g: 0})# 删除g元素
del c[g]
c # 结果Counter({o: 2, d: 1, s: 1})
# 删除d元素并返回删除元素的值
c.pop(d) # 结果1
c # 结果Counter({o: 2, s: 1})
# 随机删除元素
c.popitem() # 结果(s, 1)
c # 结果Counter({o: 2})# 清除所有元素
c.clear()
c # 结果Counter()
共有多少元素、获取所有元素、遍历各个元素
Counter(...).total()统计元素总和。即共有多少个元素或者所有元素的值的总和
Counter(...).elements()显示所有元素。元素的个数等于所有元素值的和。返回迭代器。
Counter(...).keys()显示所有键即不重复元素。
Counter(...).values()显示所有值即各个键对应的值。
Counter(...).items()显示所有键值对元组形式即键,值。
from collections import Counterc Counter(good) # 结果Counter({o: 2, d: 1, g: 0})# 所有元素计数的总和即共有多少个元素或者所有元素的值的总和
c.total() # 结果4# 获取所有元素
set(c) # 结果{g, o, d}
dict(c) # 结果{g: 1, o: 2, d: 1}
list(c) # 结果元素不重复[g, o, d]
list(c.elements()) # 结果元素重复[g, o, o, d]
list(c.keys()) # 结果键[g, o, d]
list(c.values()) # 结果值[1, 2, 1]
list(c.items()) # 结果键值对[(g, 1), (o, 2), (d, 1)]# 遍历元素
for x in c.elements():print(f{x}:出现次数{c[x]}次)
# 结果
g:出现次数1次
o:出现次数2次
o:出现次数2次
d:出现次数1次# 遍历键
for x in c.keys():print(f{x}:出现次数{c[x]}次)
# 结果
g:出现次数1次
o:出现次数2次
d:出现次数1次# 遍历值
for x in c.values():print(x)
# 结果
1
2
1# 遍历键值对
for key,val in c.items():print(f{key}:{val})
# 结果
g:1
o:2
d:1增加元素值、减少元素值
Counter(...).update(...)和另一个Counter或可迭代对象的所有元素对应的值相加。增加元素的值而不是替换值。
Counter(...).subtract(...)和另一个Counter或可迭代对象的所有元素对应的值相减。减少元素的值而不是替换值。没有元素也可以减少值为负数。
from collections import Counterc Counter(good) # 结果Counter({o: 2, g: 1, d: 1})# 添加元素增加值 而不是 替换值
c.update({g:4})
c # 结果Counter({g: 5, o: 2, d: 1})
c.update(a3)
c # 结果Counter({g: 5, a: 3, o: 2, d: 1})# 减少元素减少值 而不是 替换值
c.subtract(g2)
c # 结果Counter({g: 3, a: 3, o: 2, d: 1})
c.subtract({a3})
c # 结果Counter({g: 3, o: 2, d: 1, a: 0})
c.subtract(h3)
c # 结果Counter({g: 3, o: 2, d: 1, a: 0, h: -3})
查看最常出现的元素
Counter(...).most_common(...)获取一组数据中最常出现的数据。返回列表列表中内容为元组(元素,出现次数)。
from collections import Counterc Counter(good) # 结果Counter({o: 2, g: 1, d: 1})# 最常出现的2个数据
c.most_common(2) # 结果[(o, 2), (g, 1)]# 最常出现的1个数据
c.most_common(1) # 结果[(o, 2)]
获取元素的值
Counter(...).get(键)通过键获取值没有返回None。
Counter(...).setdefault(键,值)通过键获取值没有可将添加键值对没有值默认None。
from collections import Counterc Counter(good) # 结果Counter({o: 2, g: 1, d: 1})c.get(o) # 结果2
c.get(a) # 结果None
c # 结果Counter({o: 2, g: 1, d: 1})c.setdefault(g) # 结果1
c.setdefault(a) # 结果None
c # 结果Counter({g: 1, o: 2, d: 1, a: None})
c.setdefault(k,9) # 结果9
c # 结果Counter({g: 1, o: 2, d: 1, a: None, k: 9}) 拷贝Coutner
Counter(...).copy()复制Counter修改不影响原Counter。
from collections import Counterc Counter(a3,d1)
c # 结果Counter({a: 3, d: 1})
f c.copy()
f # 结果Counter({a: 3, d: 1}# 修改复制后的Counter原Counter不改变
f[a]2
f # 结果Counter({a: 2, d: 1})
c # 结果Counter({a: 3, d: 1})补充