I have function 1 ma_generate which generates a list of numbers called ma_list, with one of the inputs being period.
I have function 2 multi_gen which iterates function 1 four times, each time with a different value of time. Each time function 1 is iterated, a list list1 (or list2, list3, list4 depending on which iteration) is set to equal the produced ma_list. So the intended output is to have 4 different lists (list1, list2, list3, list4) which are different versions of ma_list, with the period input changing each of the 4 times.
Here is the code:
def ma_generate(dataset, method, period): ##Function 1
ma_list.clear()
if method == "sma":
for i in range(0,period-1):
ma_list.append(0)
for i in range(period-1,len(dataset)):
ma = np.mean(dataset[i+1-period:i+1])
ma_list.append(ma)
return
def multi_gen(dataset, method, p1, p2, p3, p4):
ma_generate(dataset, method, p1)
list1.append(ma_list)
ma_generate(dataset, method, p2)
list2.append(ma_list)
ma_generate(dataset, method, p3)
list3.append(ma_list)
ma_generate(dataset, method, p4)
list4.append(ma_list)
return
However, all 4 of the generated lists are the same. They are all what "list4" should be. (the ma_list output of ma_generate when period = p4). Why are they the same?