Estoy tratando de eliminar elementos de una lista anidada en Python. Tengo una lista anidada de la siguiente manera:Eliminar elementos de una lista anidada Python
families = [[0, 1, 2],[0, 1, 2, 3],[0, 1, 2, 3, 4],[1, 2, 3, 4, 5],[2, 3, 4, 5, 6]]
Quiero eliminar las entradas de cada sublista que coorespond a la posición de indexado de la lista secundaria en la lista maestra. Entonces, por ejemplo, necesito eliminar 0 de la primera sublista, 1 de la segunda sublista, etc. Estoy tratando de usar una lista de aprehensión, haz esto. Esto es lo que he intentado:
familiesNew = [ [ families[i][j] for j in families[i] if i !=j ] for i in range(len(families)) ]
Esto funciona para range(len(families))
hasta 3, sin embargo, más allá de eso me sale IndexError: list index out of range
. No estoy seguro por qué. ¿Alguien puede darme una idea de cómo hacer esto? Preferiblemente un trazador de líneas (lista de comprensión).
Gracias.
Gracias, me decidí a ir con la última opción, ya que en realidad era bueno y deseable cambiar la lista en su lugar. – johntfoster