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)