不理解哪里出错了,请指出错误

img


生成包含 10 个 0 到 100 之间的随机整数,放入列表中,求出该列表平均值,并
将小于平均值的列表元素置 0,输出更新后的列表。


import random

a = []
for i in range(10):
    a.append(random.randint(0,100))
avg = sum(a)/len(a)
print(avg,a)
for i in range(len(a)):
    if a[i]<avg:
        a[i] = 0
print(a)

replace是一般用于str的,用来将某个字符替换成指定字符。list里面的元素替换用索引获取值,然后重新赋值就行

除了randint()还能用randrange()
列表推导式是最方便的:

a = [random.randrange(101) for _ in range(10)]
avg = sum(a)/10
b = [0 if i<avg else i for i in a]
print(b)

数组没有replace方法

import random
lt = [random.randint(0, 100) for i in range(10)]
print(lt)
avg = sum(lt)/len(lt)
print(avg)
for i in range(len(lt)):
    if lt[i] < avg:
        lt[i] = 0
print(lt)