from collections import Counter
from collections import Counter
s = "hello-python-hello-world"
a = Counter(s)
print(a)
# 结果
Counter({'-': 3, 'd': 1, 'e': 2, 'h': 3, 'l': 5, 'n': 1, 'o': 4, 'p': 1, 'r': 1, 't': 1, 'w': 1, 'y': 1})
dict(a)
#对键或者值排序 用sorted(,key=,reverse=)
sorted(dict(a).items(),key=lambda x:(x[0],x[1]),reverse=True)
from collections import defaultdict
from collections import defaultdict
initial_data = [('class1', '张三'), ('class2', '李四'), ('class1', '王五'),
('class3', '赵六'), ('class3', '李刚弹'), ('class2', '王大炮'),
('class1', '王大锤'), ('class2', '李二狗'), ('class1', '佚名')
]
# ==> 变成:
finally_data = {
'class1': ['张三', '王五', '王大锤', '佚名'],
'class2': ['李四', '王大炮', '李二狗', ],
'class3': ['赵六', '李刚弹']
}
# 如果自己实现的话可能会用for循环依次判断,又或者使用到setdefault方法也可以
# 这里如果使用defaultdict方法算是一种比较优雅的解决吧:
res5 = defaultdict(list)
for k, v in initial_data:
res5[k].append(v)
print(res5 == finally_data) # True