Las listas son estructuras de datos que se encargan de almacenar y ordenar elementos, las listas son del tipo mutable ¿Que quiere decir esto? que se pueden añadir, eliminar y editar datos en tiempo de ejecución a diferencia de las tuplas que son inmutables y una vez creadas ya no se pueden modificar.

Las listas en Python pueden manejar varios tipos de datos a la vez, es decir puede tener elementos numéricos y cadenas de texto mezclados sin ningún problema, recordemos que las variables en Python son dinámicas, entonces no tenemos problemas para realizar esta declaración:

>> lista = [True, 1, “hola”, 42, False]

Podemos ver que la sintaxis es muy simple, corchetes que contienen los elementos que van separados por comas, podemos observar que primero hay un booleano, luego un número, una cadena, otro numero y finalmente otro booleano.Ya tenemos una lista creada, pero ahora ¿Que podemos hacer con ella? Sigue leyendo.

Mostrar elementos de una Lista

Para mostrar en pantalla todos los elementos podemos usar la función print() así:

>> print(“\nEl contenido de la lista es:\n”,lista, “\n”)
El contenido de la lista es:
[True, 1, ‘hola’, 42, False]

Para el mismo propósito y de manera similar, podemos hacer uso de un for donde imprimimos los valores de la variable “i” que cambia a lo largo del recorrido de la lista:

>>for i in lista:
>>    print(i)
True
1
hola
42
False

También podemos simplemente colocar el nombre de la lista, pero ojo, esto solo funciona si estamos en el interprete de Python, si intentamos ejecutar un script.py entonces no mostrará nada y será necesario colocar print(lista) en esta entrada haré de cuenta y caso que estamos usando el interprete, y aclaro que las líneas que lleven “>>” indican lo que introducimos, y lo que no lleve “>>” indica la salida.

>>lista
[True, 1, ‘hola’, 42, False]

Si queremos acceder a un elemento específico de la lista lo podemos hacer por medio de su índice, como en los Arrays, el índice parte de 0, entonces si queremos el primer término colocaríamos:

>>lista[0]
True
>>lista[3]
hola

Se puede acceder por medio de un índice negativo, es decir, si tenemos 5 elementos, y colocamos “-1” nos arrojaría el elemento “5”, si colocamos “-2”, nos arrojaría el elemento [4], ejemplo:

>>lista[-1]
False
>>lista[-2]
42

Si queremos acceder a los elementos de una lista por medio de un rango, digamos por ejemplo del elemento 1 al 3, usamos [1:4] y muestra los elementos cuyo índice sea 1,2 ó 3 (no incluye el 4), por ejemplo:

>>lista[1:4]
[1, ‘hola’, 42]
>>lista[0:2]
[True, 1]

También podemos hacerlo con índices negativos, siguiendo la misma lógica de antes:

>>> lista[1:-1]
[1, ‘hola’, 42]

Si nos salimos del rango, es decir seleccionamos elementos cuyo índice no existe en la lista nos mostrará un conjunto vacío:

>>> lista[5:7]
[]

Si queremos mostrar todos los elementos de la lista que estén antes de algún inice específico:

>>> lista[:2]
[True, 1]
>>> lista[:3]
[True, 1, ‘hola’]

O si por el contrario, queremos mostrar todos los elementos de la lista que estés después de algún indice específico:

>>> lista[3:]
[42, False]
>>> lista[2:]
[‘hola’, 42, False]
Modificar Listas

Por medio del índice no solamente se puede acceder al valor, sino también re-asignarle un nuevo valor:

>>lista[0] = “nuevo valor del elemento”
>>print(lista[0])
nuevo valor del elemento

También podemos reescribir la lista entera asignándole nuevos valores:

>>lista = [True, 1, 3.5, False, “hola”, 42, “cesarer.blogspot.com”]
>>print(lista)
[True, 1, 3.5, False, ‘hola’, 42, ‘cesarer.blogspot.com’]
>>print(lista[-3])
hola

Para añadir al final de una lista se usa la función append()

>>lista.append(“nuevo”)
>>lista[7]
nuevo

Para añadir en una posición específica se hace con la función insert()

>>lista.insert(3,True)
>>lista[3]
True

Podemos Borrar los elementos de una lista, por medio de su índide con la función del

>>> del lista[6]
>>> lista
[True, 1, 3.5, True, False, ‘hola’, ‘cesarer.blogspot.com’, ‘nuevo’]
>>> del lista[6]
>>> lista
[True, 1, 3.5, True, False, ‘hola’, ‘nuevo’]
>>> del lista[3]
>>> lista
[True, 1, 3.5, False, ‘hola’, ‘nuevo’]

También podemos hacer uso de los rangos antes mencionados

>>> del lista[3:6]
>>> lista
[True, 1, 3.5]

Por lo tanto para borrar toda la lista puedes hacerlo borrando los índices del 0 hasta el último de la lista, al final puedes imprimir la lista y ver que devuelve una lista vacía:

>>> del lista[0:]
>>> lista
[]

Podemos concatenar listas con la función extend()

>>> lista = [1,2,3]
>>> lista
[1, 2, 3]
>>> lista2 = [“a”,”b”,”c”]
>>> lista2
[‘a’, ‘b’, ‘c’]
>>> lista.extend(lista2) #la lista2 se concatena al final
>>> lista #vemos como la lista ha cambiado
[1, 2, 3, ‘a’, ‘b’, ‘c’]
>>> lista2 #claramente la lista2 sigue intacta
[‘a’, ‘b’, ‘c’]

Con extend() también podemos concatenar nuevos elementos a una lista, sin necesidad de concatenar le otra lista como en el ejemplo anterior

>>> lista = [0,1,2,3]
>>> lista
[0, 1, 2, 3]
>>> lista.extend([4,5,6,7])
>>> lista
[0, 1, 2, 3, 4, 5, 6, 7]

Para eliminar el último elemento añadido se utiliza la función pop(), si, como si fuese una pila, elimina el último elemento y lo devuelve, de tal manera que podemos asignarle el valor del elemento eliminado a una variable.

>>lista = [“a”,”b”,”c”,”d”]
>>lista.pop
‘d’
>>> a = lista.pop()
>>> a
‘c’
Otras funciones para las Listas

Si queremos saber cuantos elementos posee una lista, usamos len()

>>print(len(lista))
7

También podemos invertir el orden de una lista con reverse()

>>> lista = [“a”,”b”,”c”,”d”]
>>> lista
[‘a’, ‘b’, ‘c’, ‘d’]
>>> lista.reverse()
>>> lista
[‘d’, ‘c’, ‘b’, ‘a’]

Para saber en que índice se encuentra algún elemento usamos index()

>>> lista.index(“c”)
1
>>> lista.index(“a”)
3

La función index es útil, pero corremos el riesgo de que python nos arroje una excepción si el elemento que buscamos no existe y nos arroje una excepción, para evitarlo usamos in que nos devuelve un valor booleano.

>>> lista.index(“z”) #esto arroja una excepción
Traceback (most recent call last):
File “”, line 1, in
ValueError: ‘z’ is not in list
>> “z” in lista
False
>> “a” in lista
True

Utilizando un conficional if, podemos evitar la excepción y mostrar un mensaje de error al usuario más agradable:

>>> if (“z” in lista == True):
…     print(lista.index(“z”))
… else:
…     print(“No existe el elemento en la lista”)

No existe el elemento en la lista

Para ordenar los elementos de una lista, podemos usar la función sort()

>>> lista = [3,6,2,76,36,12,9,0]
>>> lista
[3, 6, 2, 76, 36, 12, 9, 0]
>>> lista.sort()
>>> lista
[0, 2, 3, 6, 9, 12, 36, 76]

Para convertir las palabras de una cadena de texto a elementos separados en una lista, se usa la función split()

>>> palabras = “estoy aprendiendo sobre listas en Python”
>>> lista = palabras.split()
>>> lista
[‘estoy’, ‘aprendiendo’, ‘sobre’, ‘listas’, ‘en’, ‘Python’]

Ahora, al estar escribiendo esto, se me ocurrió una pregunta que tal ya te habrás hecho ¿Que pasa si aplico la función sort() a la lista con palabras? veamos:

>>> lista.sort()
>>> lista
[‘Python’, ‘aprendiendo’, ‘en’, ‘estoy’, ‘listas’, ‘sobre’]

Al parecer “lo ordena”, pero no me pregunten porque ese orden tan extraño, que no tengo idea, como sea, sigamos (pongo “cara de Yao Ming”).

Se pude convertir cada elemento de una cadena de texto en una lista con la función list()

>>> lista = list(“las listas en Python sin una gran cosa!”)
>>> lista
[‘l’, ‘a’, ‘s’, ‘ ‘, ‘l’, ‘i’, ‘s’, ‘t’, ‘a’, ‘s’, ‘ ‘, ‘e’, ‘n’, ‘ ‘, ‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘ ‘, ‘s’, ‘i’, ‘n’, ‘ ‘, ‘u’, ‘n’, ‘a’, ‘ ‘, ‘g’, ‘r’, ‘a’, ‘n’, ‘ ‘, ‘c’, ‘o’, ‘s’, ‘a’, ‘!’]
>>> lista = list(“36326804515”)
>>> lista
[‘3’, ‘6’, ‘3’, ‘2’, ‘6’, ‘8’, ‘0’, ‘4’, ‘5’, ‘1’, ‘5’]

También podemos hacer el procedimiento inverso al de split() con la función join(), es decir, hacer que los elementos de la lista formen parte de una string

>>> lista = [“esta”,”es”,”una”,”prueba”]
>>> cadena = ” “.join(lista)
>>> cadena
‘esta es una prueba’
>>> cadenaSinEspacios = “”.join(lista)
>>> cadenaSinEspacios
‘estaesunaprueba’
>>> cadenaConGuiones = “-“.join(lista)
>>> cadenaConGuiones
‘esta-es-una-prueba’

Hay muchas cosas más que se pueden hacer con listas en Python, pero lo dejaré hasta aquí y complementaré más adelante en otras entradas, me despido por ahora y espero que esto resulte de utilidad y de interés, si no he sido lo suficientemente claro tómate la libertad de preguntarlo y trataré de explicarlo mejor, un saludo.

10
Deja una respuesta

avatar
9 Hilos de comentario
1 Respuestas de hilo
0 Seguidores
 
Comentario más reaccionado
El hilo de comentarios más caliente
8 Autores de comentarios
marvinlaraEjercicio Python #6 – Apuntes de ProgramaciónNoelIllan de LeonIvan Autores de comentarios recientes
  Suscribirse  
Los más recientes Los más antiguos Más votados
Notificarme las
marvinlara
Invitado
marvinlara

El orden de las listas se debe a que en eodigo ascii las mayusculas tienen menor valor que las minusculas, por lo tanto se ordenan de primero

trackback
Illan de Leon
Invitado
Illan de Leon

Ha sido un placer compartir este maravilloso rato mirando los entrañables consejos de esta web, he aprendido mogollon. No dudare en volver a entrar. ARRIBA LA TECNOLOGIA!!!!! SALU2 . Illan

Ivan
Invitado
Ivan

antes no sabia usar python, desde que conoci esta fabulosa web mi profesor esta alucinado conmigo. Os lo agradezco. Salu2. Ivan Puente

Noel
Admin

Eso es estupendo ^^

Sara
Invitado
Sara

Me gustaria saber un programa que dado una lista formada por string, y un string, me devuelva un booleano si el elemento aparece ordenado tal como esta en la lista de partida. Muchas gracias!!!1