[英]python: Is it possible to create a list inside of a function?
是否可以在函数内创建一个列表? 我有一些命令要整合到一个新函数(runTimes)。 下面的代码可以工作并完成我想要它做的事情。 我无法将其转换为函数。
import numpy as np
import random
numRounds = 10
numTimes = 5
finalList = []
# First Function
def runRounds(numberOfRounds):
for xRound in range(numberOfRounds):
if random.randint(0,100) >= 85:
firstList.append(1)
else:
firstList.append(0)
finalList.append(max(firstList))
# Run some # of times
for time in range(numTimes):
firstList = []
runRounds(numRounds)
print firstList
print finalList
我不能只是缩进我的代码来创建一个可用的函数。 在下面的例子中,我尝试这样做,但它失败了,因为'firstList'从未实际定义过我认为。 我收到以下错误:
NameError:未定义全局名称“firstList”
这是我的代码的缩写示例,但它说明了我的问题。 我需要能够在循环中每次从firstList追加一个带有单个值的finalList。 我这样做的方法是在每次执行runRounds之前定义'firstList = []',以便每次runRounds执行时firstList都为空。 但是,如果我尝试在新函数中创建firstList,它将无法工作。 我在下面的例子中试试。 我打赌有一种标准的方法可以做我不需要做的事情,我还是新的 - 感谢耐心......
import numpy as np
import random
numRounds = 10
numTimes = 5
finalList = []
# First Function
def runRounds(numberOfRounds):
for xRound in range(numberOfRounds):
if random.randint(0,100) >= 85:
firstList.append(1)
else:
firstList.append(0)
finalList.append(max(firstList))
# Run some # of times
def runTimes(numberofTimes):
for time in range(numTimes):
firstList = []
runRounds(numRounds)
print firstList
runTimes(numTimes)
print finalList
在函数中创建的变量不是全局变量,因此您无法随时访问它们。
这是可行的代码
import numpy as np
import random
numRounds = 10
numTimes = 5
finalList = []
def runRounds(numberOfRounds, firstList, finalList):
for xRound in range(numberOfRounds):
if random.randint(0,100) >= 85:
firstList.append(1)
else:
firstList.append(0)
finalList.append(max(firstList))
return (firstList, finalList)
def runTimes(numTimes, numRounds, finalList):
for time in range(numTimes):
firstList = []
firstList, finalList = runRounds(numRounds, firstList, finalList)
print(firstList)
return (firstList, finalList)
firstList, finalList = runTimes(numTimes, numRounds, finalList)
print(finalList)
运行runRounds
,需要将列表作为参数传入,因为您没有在函数中创建任何列表。 最后,您需要返回列表,以便以后访问它们。
对于runTimes
您需要传入先前创建的numRounds
变量和finalList
因为您正在函数中创建firstList
。 你必须返回这两个,以便以后访问它们,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.