python程序题7 统计字符出现次数 字典的应用

题目:随机生成由大小写字母和阿拉伯数字组成的长度为100的字符串,并统计其中各个字符出现的次数。

import string   #可以用dir(string)来查看string模块中所有可用的成员
import random

# 候选字符集,26个小写字母+26个大写字母+10个数字
x = string.ascii_letters + string.digits  #生成字符串x ,x='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
#可以用 print(string.ascii_letters)查看会有什么结果
# 生成包含100个随机字符的字符串 
z = ''.join((random.choice(x) for i in range(100)))   #生成器表达式,再利用join把这100个字符拼接到一起,前面的单引号中没内容表示用空串拼接
print(f'随机生成的字符串是:{z}')
d = dict() # {键:值,....}  #定义一个空字典,用键表示字符,用值表示出现次数

# 遍历字符串,统计频次
for ch in z:
    d[ch] = d.get(ch, 0) + 1  #字典中如果有ch,则次数加1 ;  如果没有ch,则添加一个键ch
    #字典的.get方法表示是dict.get(key,default)用于判断建是否存在,存在返回键对应的值,不存在返回指定的default值
    #此处用get查ch,若ch存在则返回ch对应的键值,然后将键值加1,;若吃不存在,则返回数值0,加1后变成1赋值给当前添加的键ch
# 查看统计结果,按字母顺序排序
for k, v in sorted(d.items()):   #items()方法将字典里对应的一对键和值以元组的形式(键, 值),存储为所生成序列里的单个元素
    print(k, ':', v)

你可能感兴趣的:(python编程习题,python)