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.
Para agregar un elemento al final de la lista podés usar append.
lista = [('a', 'b'),('c', 'd'),('e', 'f')]
Imprimís la lista:
[('a', 'b'), ('c', 'd'), ('e', 'f')]
Agregás una tupla al final:
lista.append(('g', 'h'))
Imprimiéndola por pantalla:
[('a', 'b'), ('c', 'd'), ('e', 'f'), ('g', 'h')]
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.