Cómo insertar en la lista anidada de python

Quiero insertar un elemento en una lista dentro de una lista. Me pregunto si alguien me puede mostrar.

list5 = [[], [(1,2,3,4), 2, 5]] print("1. list5", list5) list5.insert(0, (2,5,6,8)) print("2. list5", list5) Output: 1. list5 [[], [(1, 2, 3, 4), 2, 5]] 2. list5 [(2, 5, 6, 8), [], [(1, 2, 3, 4), 2, 5]] 

Quiero:

 2. list5 [[(2, 5, 6, 8)], [(1, 2, 3, 4), 2, 5]] 

Desafortunadamente, un diccionario no funcionará.

El problema es que está intentando insertar como primer elemento de la lista, list5 , que es incorrecto. Debe acceder al primer elemento de la lista e insertarlo en esa lista. Esto se puede hacer usando el siguiente código

 >>> list5 = [[], [(1,2,3,4), 2, 5]] >>> print("1. list5", list5) 1. list5 [[], [(1, 2, 3, 4), 2, 5]] >>> list5[0].insert(0, (2,5,6,8)) >>> print("2. list5", list5) 2. list5 [[(2, 5, 6, 8)], [(1, 2, 3, 4), 2, 5]] 

El problema aquí es que la insert crea un nuevo elemento en la lista a la que se aplica. Asi que

 >>> list5 = [[], [(1,2,3,4), 2, 5]] 

crea una lista con dos elementos, el primero de los cuales pasa a ser una lista con cero elementos:

 >>> list5[0] ## [] 

Si luego llama list5.insert(0, foo) , lo que sucederá es que foo se inserta en la lista en la posición 0, y todo lo demás se transfiere (es decir, los elementos de la lista que tenían un índice de 0 o mayor cada uno obtener su índice aumentado en 1).

Lo que realmente desea hacer es insertar un elemento en la lista vacía en la posición 0 de list5 . Por lo tanto, debe acceder a esa lista y luego llamar a un método que agregue su elemento. Ya sea

 >>> list5[0].append( (2,5,6,8) ) 

o

 >>> list5[0].insert(0, (2,5,6,8) ) 

Hará el truco.