5. 编写程序,生成一个列表,包含25个1-10之间的随机数,并统计列表中有几个不一样的数及其出现的次数。

img

为什么第一个答案是对的,而后面的就错了呢
是思路有什么问题还是缩进的问题?
可以帮帮我吗

统计次数的逻辑不对,应该用字典统计。
你题目的解答代码如下:

import random
li = [random.randint(1,10) for i in range(25)]
print(li)
dic = {}
for v in li:
    dic[v] = dic.get(v,0) + 1
for k,v in dic.items():
    print(f'{k}出现了{v}次')

print("有",len(dic),"个不同的数")

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

用字典实现比较简便

import random
l1=[random.randint(1,10) for i in range(25)]
print(l1)
d = {}
for i in l1:
    if i not in d:
        d[i]=1
    else:
        d[i]+=1
print(d)
print('不一样的数有',len(d),'个')
for k in d:
    print(k,'出现了',d[k],'次')

也许是l列表未清空,导致错误

觉得逻辑有点混乱,看写法,可能是想按顺序显示每一个出现多少次,不如直接用count,循环循环数每一个元素的个数,l2.count(1) l2.count(2)

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632