将数字添加到列表循环问题中的随机项目

时间:2019-01-21 14:32:52

标签: python loops

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

1 个答案:

答案 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)


我的拙见,您的代码有点不合常规。

  • 而不是在每个循环中都调用该函数,为什么不在函数内部包含该循环?

  • 其次,通过不返回任何内容,您指望就地更改列表,这只会使读者感到困惑。