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

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

import random

# 生成随机100个大写字母
charslist = [chr(random.randint(65, 90)) for i in range(100)]
for i in range(len(charslist)):
    print(charslist[i],end=' ')
    if (i+1)%20==0:
        print()

# 统计字符出现次数,将其添加进字典
charnumber = {}
for i in charslist:
    if charnumber.get(i):
        charnumber[i] += 1
    else:
        charnumber[i] = 1
_=list(charnumber.items())
_.sort(key=lambda x:x[1],reverse=False)
charnumber=dict(_)
print(charnumber)

img


import random
a = [''.join([chr(random.randint(65,90)) for x in range(20)]) for n in range(5)]
print('\n'.join(a))
print()

b = {n:list(''.join(a)).count(n) for n in list(''.join(a))}
print(b)
print()
print({n:b[n] for n in sorted(b,key=lambda x:b[x])})
print()
print({n:b[n] for n in sorted(b)})

img

根据题目要求按字母升序排列输出,可以这样解:

import string
import random

letters=[random.choice(string.ascii_uppercase) for i in range(100)]
i=0
for l in letters:
    print(l,end=' ')
    i+=1
    if i%20==0:
        print()

res={}
for c in letters:
    if c in res:
        res[c]=res.get(c,0)+1
    else:
        res[c]=1
lis=sorted(res.items(),key=lambda x:x[0])#sorted函数默认升序,按字母升序方式排序
new={}
for char,num in lis:
    new[char]=num
print(new)

运行结果:

F:\2021\qa\ot2>t9
Z I E M Q S B V E K F L X K N L I K P C 
O Z B C X Z A I J N P N W O W L Y N E O 
O N Q Z W N E T T T C S V C Z D A Y C R
R G K U N L T J T C L A M B O H L I X C
E F P Q V E Q F A J T O R N T Q B Q D O
{'A': 4, 'B': 4, 'C': 7, 'D': 2, 'E': 6, 'F': 3, 'G': 1, 'H': 1, 'I': 4, 'J': 3, 'K': 4, 'L': 6, 'M': 2, 'N': 8, 'O': 7, 'P': 3, 'Q': 6, 'R': 3, 'S': 2, 'T': 7, 'U': 1, 'V': 3, 'W': 3, 'X': 3, 'Y': 2, 'Z': 5}

如对你有帮助,请点击采纳按钮给予采纳。

你题目的解答代码如下:

import random
import string

li = [random.choice(string.ascii_uppercase) for i in range(100)]
for i in range(0,100,20):
    print(" ".join(li[i:i+20]))
dic = {}
for v in li:
    dic[v] = dic.get(v,0)+1
li2 = sorted(dic.items(),key=lambda x: x[0])
for c,v in li2:
    print(f'{c}: {v}')

img

如有帮助,望采纳!谢谢!