Problema con listas en Python (Resuelto)

Iniciado por MA40, 5 Abril 2012, 20:01 PM

0 Miembros y 1 Visitante están viendo este tema.

MA40

Hola.

Estoy aprendiendo un poco de Python y me he encontrado con el siguiente problema.

1º- Creo una lista con 3 tuplas, cada una de ellas es una pareja de caracteres.
2º- Imprimo la lista, todo correcto.
3º- Asigno un nuevo valor al elemento 2 de la lista, el nuevo valor es otra tupla con dos caracteres diferentes.
4º- Vuelvo a imprimir la nueva lista y todo sigue estando bien hasta aquí.
5º- Ahora intento añadir otra tupla diferente aumentando en uno los elementos de la lista al final de la derecha.
6º- Imprimo la lista y el resultado no es el que deseo. Mi intención era obtener una lista con cuatro tuplas y lo que he creado es una lista con tres tuplas y dos caracteres. ¿Cual ha sido mi error? ¿Me podéis ayudar?

lista = [("a", "b"), ("c", "d"), ("e", "f")]
print lista
lista[2] = ("g", "h")
print lista
lista[3:3] = ("i", "j")
print lista


SALIDA POR PANTALLA

[('a', 'b'), ('c', 'd'), ('e', 'f')]
[('a', 'b'), ('c', 'd'), ('g', 'h')]
[('a', 'b'), ('c', 'd'), ('g', 'h'), 'i', 'j']


Un saludo.
¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
Visita Ediciones MA40 - Libros clásicos de ajedrez y este blog de ajedrez
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador

criskapunk

Para agregar un elemento al final de la lista podés usar append.

Código (python) [Seleccionar]
lista = [('a', 'b'),('c', 'd'),('e', 'f')]

Imprimís la lista:

[('a', 'b'), ('c', 'd'), ('e', 'f')]

Agregás una tupla al final:

Código (python) [Seleccionar]
lista.append(('g', 'h'))

Imprimiéndola por pantalla:

[('a', 'b'), ('c', 'd'), ('e', 'f'), ('g', 'h')]


MA40

Correcto criskapunk.

Muchas gracias, como dices funciona correctamente.
Me he dado cuenta que también se puede hacer con la siguiente instrucción:

lista[3:3] = [("i", "j")]

Me faltaba poner la tupla entre corchetes. Las dos formas hacen lo mismo.

Un saludo.
¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
Visita Ediciones MA40 - Libros clásicos de ajedrez y este blog de ajedrez
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador