Teoria - Listas
Teoria - Listas
Teoria - Listas
Por ejemplo, para crear una lista con los números del 1 al 10 se
haría del siguiente modo:
Cómo acceder a los elementos de una
>>> numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lista en Python
Como te decía, las listas pueden almacenar elementos de distinto
tipo. La siguiente lista también es válida: Para acceder a un elemento de una lista se utilizan los
>>> elementos = [3, 'a', 8, 7.2, 'hola'] índices. Un índice es un número entero que indica la posición
de un elemento en una lista. El primer elemento de una lista
Incluso pueden contener otros elementos compuestos, como siempre comienza en el índice 0.
objetos u otras listas:
>>> lista = [1, ['a', 'e', 'i', 'o', 'u'], 8.9, 'hola'] Por ejemplo, en una lista con 4 elementos, los índices de cada
uno de los ítems serían 0, 1, 2 y 3.
Las listas también se pueden crear usando el constructor de la >>> lista = ['a', 'b', 'd', 'i', 'j']
clase, list(iterable) . En este caso, el constructor crea una lista >>> lista[0] # Primer elemento de la lista. Índice 0
cuyos elementos son los mismos y están en el mismo orden que 'a'
los ítems del iterable. El objeto iterable puede ser o una >>> lista[3] # Cuarto elemento de la lista. Índice 3
1
'i' 'u'
>>> vocales[-4]
Si se intenta acceder a un índice que está fuera del rango de la 'e'
lista, el intérprete lanzará la excepción IndexError . De igual modo, Acceso a un subconjunto de elementos
si se utiliza un índice que no es un número entero, se lanzará la
excepción TypeError : También es posible acceder a un subconjunto de elementos de
>>> lista = [1, 2, 3] # Los índices válidos son 0, 1 y 2 una lista utilizando rangos en los índices. Esto es usando el
>>> lista[8] operador [:] :
Traceback (most recent call last): >>> vocales = ['a', 'e', 'i', 'o', 'u']
File "<input>", line 1, in <module> >>> vocales[2:3] # Elementos desde el índice 2 hasta el índice 3-1
IndexError: list index out of range ['i']
>>> lista[1.0] >>> vocales[2:4] # Elementos desde el 2 hasta el índice 4-1
Traceback (most recent call last): ['i', 'o']
File "<input>", line 1, in <module> >>> vocales[:] # Todos los elementos
TypeError: list indices must be integers or slices, not float ['a', 'e', 'i', 'o', 'u']
>>> vocales[1:] # Elementos desde el índice 1
Como hemos visto, las listas pueden contener otros elementos ['e', 'i', 'o', 'u']
de tipo secuencia de forma anidada. Por ejemplo, una lista que >>> vocales[:3] # Elementos hasta el índice 3-1
uno de sus ítems es otra lista. Del mismo modo, se puede ['a', 'e', 'i']
acceder a los elementos de estos tipos usando índices
compuestos o anidados: También es posible acceder a los elementos de una lista
>>> lista = ['a', ['d', 'b'], 'z'] indicando un paso con el operador [::] :
>>> lista[1][1] # lista[1] hace referencia a la lista anidada >>> letras = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']
'b' >>> letras[::2] # Acceso a los elementos de 2 en 2
Acceso a los elementos usando un índice negativo ['a', 'c', 'e', 'g', 'i', 'k']
>>> letras[1:5:2] # Elementos del índice 1 al 4 de 2 en 2
En Python está permitido usar índices negativos para acceder a ['b', 'd']
los elementos de una secuencia. En este caso, el índice -1 hace >>> letras[1:6:3] # Elementos del índice 1 al 5 de 3 en 3
referencia al último elemento de la secuencia, el -2 al penúltimo y ['b', 'e']
así, sucesivamente:
>>> vocales = ['a', 'e', 'i', 'o', 'u']
>>> vocales[-1]
2
for list Python – Recorrer una lista También es posible utilizar el operador de concatenación + para
unir dos listas en una sola. El resultado es una nueva lista con los
Ya hemos visto que se puede usar el bucle for en Python para elementos de ambas:
recorrer los elementos de una secuencia. En nuestro caso, para >>> lista_1 = [1, 2, 3]
recorrer una lista en Python utilizaríamos la siguiente estructura: >>> lista_2 = [4, 5, 6]
>>> nueva_lista = lista_1 + lista_2
>>> colores = ['azul', 'blanco', 'negro']
>>> nueva_lista
>>> for color in colores:
[1, 2, 3, 4, 5, 6]
print(color)
azul
Por otro lado, el operador * repite el contenido de una
blanco
lista n veces:
negro
>>> numeros = [1, 2, 3]
>>> numeros *= 3
>>> numeros
Añadir elementos a una lista en Python [1, 2, 3, 1, 2, 3, 1, 2, 3]
Tal y como te he adelantado, las listas son secuencias mutables, Y para terminar esta sección, indicarte que también es posible
es decir, sus elementos pueden ser modificados (se pueden añadir un elemento en una posición concreta de una lista con el
añadir nuevos ítems, actualizar o eliminar). método insert(índice, elemento) . Los elementos cuyo índice sea
mayor a índice se desplazan una posición a la derecha:
Para añadir un nuevo elemento a una lista se utiliza el >>> vocales = ['a', 'e', 'u']
método append() y para añadir varios elementos, el >>> vocales.insert(2, 'i')
método extend() : >>> vocales
>>> vocales = ['a'] ['a', 'e', 'i', 'u']
>>> vocales.append('e') # Añade un elemento
>>> vocales
['a', 'e']
>>> vocales.extend(['i', 'o', 'u']) # Añade un grupo de elementos
Modificar elementos de una lista
>>> vocales
Es posible modificar un elemento de una lista en Python con el
['a', 'e', 'i', 'o', 'u']
operador de asignación = . Para ello, lo único que necesitas
3
conocer es el índice del elemento que quieres modificar o el ['a', 'e', 'u']
rango de índices: # Elimina todos los elementos
>>> vocales = ['o', 'o', 'o', 'o', 'u'] >>> del vocales[:]
# Actualiza el elemento del índice 0 >>> vocales
>>> vocales[0] = 'a' []
>>> vocales
['a', 'o', 'o', 'o', 'u'] Además de la sentencia del , podemos usar los
# Actualiza los elementos entre las posiciones 1 y 2 métodos remove() y pop([i]) . remove() elimina la primera
>>> vocales[1:3] = ['e', 'i'] ocurrencia que se encuentre del elemento en una lista. Por su
>>> vocales parte, pop([i]) obtiene el elemento cuyo índice sea igual a i y lo
['a', 'e', 'i', 'o', 'u'] elimina de la lista. Si no se especifica ningún índice, recupera y
elimina el último elemento.
>>> letras = ['a', 'b', 'k', 'a', 'v']
# Elimina la primera ocurrencia del carácter a
Eliminar un elemento de una lista en >>> letras.remove('a')
Python >>> letras
['b', 'k', 'a', 'v']
En Python se puede eliminar un elemento de una lista de varias # Obtiene y elimina el último elemento
4
Longitud (len) de una lista en Python sort list Python – Ordenar una lista en
Como cualquier tipo secuencia, para conocer la longitud de una
Python
lista en Python se hace uso de la función len() . Esta función
Las listas son secuencias ordenadas. Esto quiere decir que sus
devuelve el número de elementos de una lista:
elementos siempre se devuelven en el mismo orden en que
>>> vocales = ['a', 'e', 'i', 'o', 'u']
fueron añadidos.
>>> len(vocales)
5 No obstante, es posible ordenar los elementos de una lista con el
método sort() . El método sort() ordena los elementos de la lista
utilizando únicamente el operador < y modifica la lista actual (no
Cómo saber si un elemento está en una se obtiene una nueva lista):
# Lista desordenada de números enteros
lista en Python >>> numeros = [3, 2, 6, 1, 7, 4]
# Identidad del objeto numeros
Para saber si un elemento está contenido en una lista, se utiliza el >>> id(numeros)
operador de pertenencia in : 4475439216
>>> vocales = ['a', 'e', 'i', 'o', 'u'] # Se llama al método sort() para ordenar los elementos de la lista
>>> if 'a' in vocales: >>> numeros.sort()
... print('Sí') >>> numeros
... [1, 2, 3, 4, 6, 7]
Sí # Se comprueba que la identidad del objeto numeros es la misma
>>> if 'b' not in vocales: >>> id(numeros)
... print('No') 4475439216
...
No