将数字随机分配到列表

时间:2018-11-05 22:04:36

标签: python-3.x list random

我有4个空列表。 我想随机分配从1开始的数字,直到列表中所有数字的总和超过1000。

这是我尝试的代码:

toplam=0
x=0
while toplam<1000:
    x+=1
    toplam+=x
a=[]
b=[]
c=[]
d=[]
list=[a,b,c,d]
z=[1,2,3,4]
import random
for i in range(x):
    t=random.choice(z)
    t2=list[t]
    t2.append(x)
print(list)

我想要:

  

[[2,6,8,18,20,21,28,40,43],[1,5,19,23,24,25,29,31,33,   34,35,37,39,45],[9,10,11,13,13,22,26,36,38,44],[3,
  4,7,12,14,16,17,17,27,30,32,41,42]]

列表总数:

  

[186,380,224,245]

1 个答案:

答案 0 :(得分:2)

python中的索引从0开始。

import random

vals = [[] for _ in range(4)]
x = 0

while (x * (x + 1)) / 2 < 1000:
    t = random.randint(0,3)
    vals[t].append(x)
    x+=1

print(vals)