+ 1

¿Como corrijo la funcion recursiva pt() ?

# se busca hacer potencia con elementos de lista de forma recursiva para validar b^4 in lista_a ^20 def elemento_a_elemento(lista1,lista2): aux=[] for element in lista1: for elemento in lista2: aux.append(element + elemento) return aux def pt(lista,num): if num==0: return [] if num==1: return lista else: #necesito ayuda para hacer recursiva esta funcion, hasta ahora tengo esto: listaAux= elemento_a_elemento(lista,lista) return pt(listaAux,num-1) lista_a=['ac','b'] print (pt(lista_a,4))

27th Mar 2019, 8:31 PM
Gustavo Antonio Muñoz Becerra
Gustavo Antonio Muñoz Becerra - avatar
3 odpowiedzi
+ 1
De hecho, como esta actualmente tu codigo, estas pasando la lista ['ac','b'] dos veces a la funcion elemento_a_elemento. Por elemento en la lista ['ac','b'] Por elemento en la lista ['ac','b'] Iteraciones: 1) 'ac' + 'ac' = 'acac' 2) 'ac' + 'b' = 'acb' 3) 'b' + 'ac' = 'bac' 4) 'b' + 'b' = 'bb' Te devuelve la lista: ['acac', 'acb', 'bac', 'bb'] Luego en la recursion: Por cada elemento en lista['acac', 'acb'..... Esta es el comportamiento que quieres para tu funcion? Ah, y el condicional (if num == 1) creo que no deberia ir, debido a que se perderia una potencia.. Exito!
28th Mar 2019, 12:37 AM
Luis Sepúlveda
Luis Sepúlveda - avatar
0
¿Cuál se supone que debe ser el resultado de "print(pt(lista_a,4))"?
27th Mar 2019, 9:12 PM
Diego
Diego - avatar
0
La 4 ta potencia de lista_a quedaria dentro elementos como acacacac, bbbb
27th Mar 2019, 9:36 PM
Gustavo Antonio Muñoz Becerra
Gustavo Antonio Muñoz Becerra - avatar