我创建了一个程序,输出1000个数字,然后打印它们的总和。在
我怎样才能循环它100次,每次都把总和加到一个新的列表中?在
import random
output=[]
new_output=[]
outcome =[]
choices = [('0.1', -1), ('0.3', 0), ('0.3', 3), ('0.3', 4)]
prob = [cnt for val, cnt in choices]
for i in range (1000):
output.append(random.choice(prob))
for item in new_output:
new_output.append(float(item))
amount = len(new_output)
print(new_output)
print('The end positon is', amount)
首先,你的代码并不像你在标题中所说的那样。只要稍加修改,它就会:新的输出、输出和结果变量就有点混在一起了。在
以下代码附加到
output
变量:但是稍后,您将迭代
^{pr2}$new_output
,这是一个空列表。在在本例中,第二个循环的原因是未知的,现在让我们跳过它。关于输出的求和-
len(new_output)
将始终为0,因为len
本身返回iterable中的元素数,new_output
是一个空列表。如果需要循环输出的长度,则必须引用正确的变量:但这并不是输出的总和—为此,有一个方便的函数
sum
来完成您需要的操作。在固定代码可能如下所示:
现在,变量没有混合在一起,你正在总结输出。要执行此操作100次,请将此功能放入另一个循环中,该循环将运行100次:
此代码还假定结束位置是所有新输出的总和(随机数之和)。一个额外的提示:如果您不关心范围内的值,请使用
_
-(for _ in range(100))
。这将大大减少命名空间污染。在可能还有一个关于概率的问题-
构造一个列表
用
random.choice
从中选取一个结果,忽略了概率。在相关问题 更多 >
编程相关推荐