
from collections import Counter ,Counter可以对字符串、列表、元祖、字典进行计数,返回一个字典类型的数据,键是元素,值是元素出现的次数。
调用most_common(x) 可以统计出现最多次数的X个元素(从大到小输出)
Counter 可以与其他方法联合操作,输出不一样的结果,还可以做数学运算。
from collections import Counter
str = "hello-python-hello-hadoop"
r1 = Counter(str) # 每个字符出现了几次
print("返回键与值:", r1) # 字典返回键与值
print("值的总和:", sum(r1.values())) # 返回值的总和
r2 = r1.most_common(4) # 输出前四个最多次数的元素
print("---" * 18)
print("从大到小:", r2)
r3 = str.split("-") # 结合split,分割成单词统计
print("---" * 18)
print("split分割:", r3)
print("单词统计:", Counter(r3))
二、找出所有重复元素
from collections import Counter
def find_duplicate(str):
c = Counter(str)
print(c)
# c = Counter(str.split("-")) # 单词分割
# print(c)
# d = filter(lambda k: c[k] > 1, c) # 过滤出满足c[k]>1的元素
# print("重复的元素:", list(d)) # 列表形式输出过滤的元素
return list(filter(lambda k: c[k] > 1, c)) # 整合代码
str = input("请输入字符串:") # hello-python-hello-hadoop
find_duplicate(str)
from collections import Counter
tool = ['pen', 'rule', 'knife', 'sword', 'paper']
stationery = ['pen', 'rule', 'paper']
t = Counter(tool)
s = Counter(stationery)
print("累加输出:", (t+s))
print("--"* 25)
def sum_counter(*data):
if len(data) < 1:
return "输入错误"
mapc = map(Counter, data) # 把data所有元素转为Counter形式,以列表返回结果
s = Counter([]) # 定义一个空Counter
print(s)
for ic in mapc: # 对mapc逐个进行
s += ic # 累加次数
print(s) # 逐个累加输出
return s
sum_counter(t, s, ['pen'], ['rule', 'paper', 'watch'])