Как я могу рекурсивно ввести параметры в эту функцию с начальным значением? - PullRequest
0 голосов
/ 28 сентября 2018

, поэтому у меня есть эта функция, которая принимает массив массивов и выводит массив массивов с различными значениями (я пытаюсь использовать функцию генетического программирования).

Итак, моя проблема заключается в следующем: у меня есть основная функция, которая называется evolve(population), которая принимает массив массивов и выводит новую.Я хотел бы продолжать вызывать эту функцию для последовательных групп населения, однако я не совсем уверен, как это сделать?

Итак, у нас есть начальный массив x, и мы передаем его в evolve(x), который выводит новый массив массивов y, теперь я хотел бы передать evolve(y) в мою функцию и так далее в течение z количество раз(в цикле).Можно ли это сделать?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Я думаю, что вам следует использовать рекурсивную функцию обратного вызова :

def evolve(population, amount_of_time_you_want_add):
    print(population)

    if amount_of_time_you_want_add > 0:
        # your operation before callback function
        population.append("x")
        return evolve(population, amount_of_time_you_want_add-1)


evolve([1,2,3,4], 5)
0 голосов
/ 28 сентября 2018

Это должно сделать работу довольно хорошо;

population = [1, 2, 3, 4]  # any list
z = 10  # evolve 10 times

for i in range(z):
    population = evolve(population)
...