随机生成100个大写英文字母,按每行20个字符形式输出,统计每个字符出现的次数并按照字母升序方式输出统计结果,要求利用字典数据类型进行操作

随机生成100个大写英文字母,按每行20个字符形式输出,统计每个字符出现的次数并按照字母升序方式输出统计结果,要求利用字典数据类型进行操作

问题描述:

随机生成100个大写英文字母,按每行20个字符形式输出,统计每个字符出现的次数并按照字母升序方式输出统计结果,要求利用字典数据类型进行操作

import random
import string

d = {}
s = 1
word = [random.choice(string.ascii_uppercase) for _ in range(100)]
w = sorted(word)
for i,v in enumerate(w, 1):
    if i % 20 == 0:
        print(v)
    else:
        print(v, end='')
    d[v] = d.get(v, 0) + 1

print(d)

大致思路:
我们可以用ASCII码来解决这个问题。
字母A-Z是65-90,我们可以用函数chr来实现int到大写字母的转换,例如chr(65) == 'A' 是True。
所以我们只需随机生成100个介于65-90的数字,(可以用numpy.random.randint实现),然后我们直接对这些数字统计,
最后用chr()将他们转化为字母后输出就行