【发布时间】:2018-11-05 22:04:36
【问题描述】:
我有 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, 15, 22, 26, 36, 38, 44], [3,
4、7、12、14、16、17、27、30、32、41、42]]
列表总和:
[186、380、224、245]
【问题讨论】:
-
1.
z不包含list中列表的索引,索引从零开始。 2. 为什么不直接从list制作一个random.choice? 3. 不要在自己的代码中使用名称list,它会影响内置类型。 4. minimal reproducible example 应该包含实际输出。 -
如果我回顾您的 4 个问题(其中 1 个由我回答),在我看来,您正在通过为您的任务提供一些稍微相关的代码来参加某种“学习 python 轨道”课程千疮百孔的SO。如果不是这种情况,我很抱歉——如果你这样做了——停止它。这是您被告知不使用
list作为变量名的第三个问题,它是今天的第二个“随机事物”问题 - 您可以使用提供的内容来解决stackoverflow.com/questions/53161460/… 并应用它这个问题 - 你没有。 -
@PatrickArtner 我想我被误解了。在某种程度上你是对的,但我是 python 新手,我正在努力提高自己。我看到你写的答案并试图申请。不幸的是我学得不是很快。感谢您的支持和警告。此致,
标签: python-3.x list random