Реализация рекурсивной функции в Python вместо цикла for - PullRequest
0 голосов
/ 21 сентября 2019

У меня есть такой код Python.

k=int(input())
m=int(input())
a=[]
max=0
for i in range(k):
    p=list(map(int,input().split()))
    q=p[1:]
    a.append(q)
x=[]
list48=[]
for num1 in a[0]:
    for num2 in a[1]:
        for num3 in a[2]:
            for num4 in a[3]:
                for num5 in a[4]:
                    for num6 in a[5]:
                        for num7 in a[6]:
                            x.extend((num1,num2,num3,num4,num5,num6,num7))
                            list48.append(x)
                            x=[]
smax=0
for i in list48:
    sum=0
    for j in i:
        sum=sum+(j**2)
    sum=sum%m
    if(sum>smax):
        smax=sum
print(smax)

Вот список списков.Он может иметь размер от 0 до 7. Размер каждого списка в a также находится между 0 и 7.Приведенный выше код работает для a с размером 7.

Как создать рекурсивную функцию с короткими строками кода для вычисления ответа для списка 'a' любого размера.

Я пробовал иРезультат вычисляется с использованием itertools, но не может получить логический подход.Вернуться к основам!!

Ниже приведен код, использующий itertools.

lis=list(itertools.product(*a))
...