Python 3.x Python3:附加到两个for循环内的列表
我有下面的代码,它总结了从正态分布中抽取的最多100个随机数,直到它达到-10或+10:Python 3.x Python3:附加到两个for循环内的列表,python-3.x,numpy,for-loop,Python 3.x,Numpy,For Loop,我有下面的代码,它总结了从正态分布中抽取的最多100个随机数,直到它达到-10或+10: import numpy as np mylist=[] summ = 0 for x in range(100): i = np.random.randn() summ += i mylist.append(i) if summ < -10 or summ >10: break 除了我现在不知道如何将元素I附加到列表中 更新:我更新了代码,因此
import numpy as np
mylist=[]
summ = 0
for x in range(100):
i = np.random.randn()
summ += i
mylist.append(i)
if summ < -10 or summ >10:
break
除了我现在不知道如何将元素I附加到列表中
更新:我更新了代码,因此首先将随机数添加到临时列表模板列表
,一旦总和超出限制,它就会将此列表附加到mylist
。不过,还是不行 mylist=[]
mylist = []
for p in range(500):
new_list = []
summ = 0
for x in range(100):
i = np.random.randn()
summ += i
new_list.append(i)
if summ < -10 or summ >10:
break
mylist.append(new_list)
对于范围(500)内的p:
新列表=[]
总和=0
对于范围(100)内的x:
i=np.random.randn()
总和+=i
新列表。附加(i)
如果总和<-10或总和>10:
打破
mylist.append(新列表)
mylist=[]
对于范围(500)内的p:
新列表=[]
总和=0
对于范围(100)内的x:
i=np.random.randn()
总和+=i
新列表。附加(i)
如果总和<-10或总和>10:
打破
mylist.append(新列表)
您可以执行任意函数500次,并使用装饰器将结果保存在列表中。只需将您的功能放入函数中:
import numpy as np
def execute_500_times(func):
def multiplying_func(*args, **kwargs):
list_of_results = list()
for _ in range(500):
list_of_results.append(func(*args, **kwargs))
return list_of_results
return multiplying_func
@execute_500_times
def myfunc():
mylist=list()
summ = 0
for x in range(100):
i = np.random.randn()
summ += i
mylist.append(i)
if summ < -10 or summ >10:
break
return mylist
result = myfunc()
将numpy导入为np
def执行500次(func):
def乘法函数(*args,**kwargs):
结果列表=列表()
对于范围(500)内的:
结果列表。追加(func(*args,**kwargs))
返回\u结果的\u列表
返回乘法函数
@执行500次
def myfunc():
mylist=list()
总和=0
对于范围(100)内的x:
i=np.random.randn()
总和+=i
mylist.append(一)
如果总和<-10或总和>10:
打破
返回mylist
结果=myfunc()
这样做的一个优点是,decorator函数也可以用于其他函数,而不仅仅是修改原始函数。您可以执行任意函数500次,并使用decorators将结果保存在列表中。只需将您的功能放入函数中:
import numpy as np
def execute_500_times(func):
def multiplying_func(*args, **kwargs):
list_of_results = list()
for _ in range(500):
list_of_results.append(func(*args, **kwargs))
return list_of_results
return multiplying_func
@execute_500_times
def myfunc():
mylist=list()
summ = 0
for x in range(100):
i = np.random.randn()
summ += i
mylist.append(i)
if summ < -10 or summ >10:
break
return mylist
result = myfunc()
将numpy导入为np
def执行500次(func):
def乘法函数(*args,**kwargs):
结果列表=列表()
对于范围(500)内的:
结果列表。追加(func(*args,**kwargs))
返回\u结果的\u列表
返回乘法函数
@执行500次
def myfunc():
mylist=list()
总和=0
对于范围(100)内的x:
i=np.random.randn()
总和+=i
mylist.append(一)
如果总和<-10或总和>10:
打破
返回mylist
结果=myfunc()
这样做的一个优点是,decorator函数也可以用于其他函数,而不仅仅是修改原始函数。您想循环500次,但创建200个列表吗?这是怎么回事?错别字,对不起!500次才能得到500张名单!在
p
循环之外创建另一个列表。在p
循环内启动一个新的mylist
,并在x
循环完成后将其附加到外部列表。是否要创建当前值为i
的500个列表?然后,您不需要将其附加到新列表中。只需用它初始化列表:mylist.append([i])
如果您的总和从未达到上限或下限,您如何处理这种情况?不是每个列表元素的总和都大于10或小于-10,这是故意的吗?您想循环500次,但创建200个列表?这是怎么回事?错别字,对不起!500次才能得到500张名单!在p
循环之外创建另一个列表。在p
循环内启动一个新的mylist
,并在x
循环完成后将其附加到外部列表。是否要创建当前值为i
的500个列表?然后,您不需要将其附加到新列表中。只需用它初始化列表:mylist.append([i])
如果您的总和从未达到上限或下限,您如何处理这种情况?不是每个列表元素的总和都大于10或小于-10是故意的吗?我喜欢这段代码,因为它连接到我已经知道的东西。但是,mylist
中的列表大多大小为1,无法更新。在前面的代码中,summ
没有设置为0。当然!否则,if
将始终为真!谢谢我喜欢这个代码,因为它连接到我已经知道的东西。但是,mylist
中的列表大多大小为1,无法更新。在前面的代码中,summ
没有设置为0。当然!否则,if
将始终为真!谢谢可能是一个非常好的解决方案,除了我不是python3的这个级别-proficiency@rororo:如果你想进入decorators,这是一个很好的起点。可能是一个很好的解决方案,除了我不是python3的这个级别-proficiency@rororo:如果你想进入装饰行业,这是一个很好的起点。