enter image description here这个简单的方法应该在每个循环中将数字添加到列表中的随机项上,但是经过这个过程,我得到的总和要比加+1时的循环更大或更小。这是我的代码和打印屏幕。 谢谢您的帮助。
'awesome red car'
'awesome blue car'
'awesome yellow car'
'stupid red car'
'stupid blue car'
'stupid yellow car'
示例
looplength = 20 inputlist = [0,0,0,0,0] import random def addrandom(n): n[random.choice(range(len(n)))] += 1 for x in range(b): addrandom(a) OUT = a
答案 0 :(得分:0)
看看下面的代码片段:
import random
def addrandom(lst, n):
for _ in range(n):
lst[random.choice(range(len(lst)))] += 1
return lst
looplength = 20
inputlist = [0, 0, 0, 0, 0]
res = addrandom(inputlist, looplength)
产生:
print(res) # -> [5, 3, 3, 6, 3]
从这次运行中可以看出,确实确实产生了一个列表,其中元素总计为looplength
(5 + 3 + 3 + 6 + 3 = 20)
我的拙见,您的代码有点不合常规。
而不是在每个循环中都调用该函数,为什么不在函数内部包含该循环?
其次,通过不返回任何内容,您指望就地更改列表,这只会使读者感到困惑。