生成包含10个随机字母或数字的字符串,然后统计每个字符的出现次数

时间: 2023-12-16 admin 维修知识

生成包含10个随机字母或数字的字符串,然后统计每个字符的出现次数

生成包含10个随机字母或数字的字符串,然后统计每个字符的出现次数

from random import choices
from string import ascii_letters, digitsx = ''.join(choices(ascii_letters+digits, k=10))
d = dict()  # 创建空字典
for ch in x:d[ch] = d.get(ch, 0) + 1  # x中有ch字符,个数+1,并作为字典的值
print(x)
print(d)

也可以使用collections模块的defaultdict类来实现

from random import choices
from string import ascii_letters, digits
from collections import defaultdictx = ''.join(choices(ascii_letters+digits, k=10))
d = defaultdict(int)  # 字典的值全为int类型,当访问的键不存在的时候,0作为默认值
for item in x:d[item] += 1
print(x)
print(d)

使用collections模块的Counter类可以快速实现这个功能,并且提供更多的功能,例如查找出现次数最多的元素

from random import choices
from string import ascii_letters, digits
from collections import Counterx = ''.join(choices(ascii_letters+digits, k=10))
d = Counter(x)  # 统计x中各种字符的个数
print(x)
print(d)
print(d.items())  # 转换成列表,以(键,值)作为元素
print(d.most_common(1))  # 出现次数最多的一个字符
print(d.most_common(3))  # 出现次数最多的3个字符