Esta es la forma de ejemplo, intentaré explicarla en palabras posteriores. Tengo una lista de romper una cadena ...Cómo procesar una cadena en una capa de sublistas
dicen
[a, a, a, b, a, a, b, a, c, a, b, a, a, c, a, c, a]
donde b es los criterios 1 y c es 2 criterios
que quiero romperlo en una lista como esta:
[a, a, a, [b, a, a, [b, a, c], a, [b, a, a, c], a, c], a]
por lo que quiero para procesar la cadena de tal manera que cuando voy a través de él, si el artículo que coincide con los criterios 1, abre una nueva lista, si el artículo coincide con los criterios 2, cerrar la lista de una Devuelve un nivel arriba.
He intentado hacer algo como esto, pero no está funcionando muy bien.
def sublist(self, l):
for line in list:
if not b:
self.data.append(line)
else:
sublist(l[line:]) #<----- not sure how to recurse it.
que he visto la lista de irrumpir en la lista de tamaño iguales ante el stackoverflow, pero no una ruptura en la lista secundaria utilizando un conjunto de criterios.
Soy bastante nuevo en Python, por lo que no estoy muy familiarizado con las estructuras de datos y las herramientas de iterador.
Nice. Los generadores definitivamente simplifican la estructura recursiva. – Marcin
(+1) ¡Buena solución! – NPE
Tenga en cuenta que esto maneja un "flujo insuficiente" al finalizar la salida. Esto podría no ser lo que se quiere. – Marcin