En python, ¿cómo puedo dividir una lista larga en una lista de listas donde sea que me encuentre '-'? Por ejemplo, ¿cómo puedo convertir:una lista> una lista de listas
['1', 'a', 'b','---', '2','c','d','---','3','123','e','---','4']
a
[['1', 'a', 'b'],['2','c','d'],['3','123','e'],['4']]
Muchas gracias por adelantado.
+1 Agradable (no pensé inmediatamente en 'itertools.groupby' aquí, pero realmente encaja en la factura) – ChristopheD
Gracias por su respuesta. ¿Hay alguna forma de comprobar x == '---' en la línea anterior con una expresión regular (algo así como x == re.match ('-'))? Muchas gracias – DGT
Sí, podría usar algo como '[list (g) for k, g en itertools.groupby (l, lambda x: re.match ('---', x)) si no k]'. La expresión 're.match (...)' devuelve None cuando 'x' no coincide con el patrón. Por lo tanto, 'k' es' Ninguno' para los elementos que desea conservar. Así que cambié la condición a 'if not k'. – unutbu