Возможно ли создать список внутри функции? У меня есть некоторые команды, которые я хотел бы объединить в новую функцию (runTimes). Код ниже работает и делает то, что я хочу, чтобы он делал. У меня возникают проблемы с превращением его в функцию.python: возможно ли создать список внутри функции?
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» не определен
Это сокращенный пример моего кода, но она иллюстрирует мою проблему. Мне нужно иметь возможность добавлять finalList с единственным значением, заимствованным из firstList, каждый раз в цикле. То, как я это делаю, - это определить «firstList = []» перед выполнением runRounds каждый раз, так что firstList будет пустым каждый раз, когда выполняется runRounds. Но если я попытаюсь создать 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