我有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]
答案 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)