python 编写程序,生成一个包含1000个由“a-zA-Z0-9”组成的,长度为2的随机字符串的列表,统计每个字符串出现的次数,并按照由高到低的顺序输出前10个字符串及其出现的次数。

python 编写程序,生成一个包含1000个由“a-zA-Z0-9”组成的,长度为2的随机字符串的列表,统计每个字符串出现的次数,并按照由高到低的顺序输出前10个字符串及其出现的次数。

问题描述:

import string
import random

def strge(n):
    return ''.join(random.sample(string.ascii_letters + string.digits, n))
x=[strge(2) for i in range(1000)]
print(x)
st=set(x)
for i in st:
     y=x.count(i)
     y.sort()
     for i in range(10):
         print(i,'出现的次数为:',x.count)



line 11, in <module>
    y.sort_values
AttributeError: 'int' object has no attribute 'sort

求问为啥会这样啊

y是一个数值,没有sort方法

y是数值,没有sort方法

要把所有y的值放列表中才能用sort方法排序

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

import string
import random
def strge(n):
    return ''.join(random.sample(string.ascii_letters + string.digits, n))
x=[strge(2) for i in range(1000)]
print(x)
st=set(x)
li = []
for i in st:
    y=x.count(i)
    li.append((y,i))

li.sort(key=lambda x: x[0], reverse=True)
for y,i in li[0:10]:
    print(i,'出现的次数为:',y)

img