Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: MA40 en 5 Abril 2012, 20:01 pm



Título: Problema con listas en Python (Resuelto)
Publicado por: MA40 en 5 Abril 2012, 20:01 pm
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?

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

Código:
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.


Título: Re: Problema con listas en Python
Publicado por: criskapunk en 6 Abril 2012, 02:35 am
Para agregar un elemento al final de la lista podés usar append.

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

Imprimís la lista:

Código:
[('a', 'b'), ('c', 'd'), ('e', 'f')]

Agregás una tupla al final:

Código
  1. lista.append(('g', 'h'))

Imprimiéndola por pantalla:

Código:
[('a', 'b'), ('c', 'd'), ('e', 'f'), ('g', 'h')]



Título: Re: Problema con listas en Python
Publicado por: MA40 en 6 Abril 2012, 12:32 pm
Correcto criskapunk.

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

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

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

Un saludo.