Listas, tuplas y sets
Listas
Las listas son colecciones mutables ordenadas de objetos; los objetos pueden ser de distintos tipos o incluso otras listas.
Se declaran con [ ]
.
Muchos de los métodos descritos a continuación se aplican a otros objetos iterables.
Índices
En Python el primer elemento de un objeto iterable tiene el índice 0
, y el último elemento tiene el índice -1
. El número de elementos en el objeto se puede obtener con len()
.
= ["HAL", "C3PO", "R2D2", "T1000"]
robots
1]
robots[# 'C3PO'
-1]
robots[# 'T1000'
Slicing
Utilizando :
podemos definir segmentos dentro de la lista. lista[x:y]
devuelve los elementos ≥x
y <y
([x,y)
)
1:3]
robots[#['C3PO', 'R2D2']
Añadir elementos
.append()
añade un elemento al final de la lista- es equivalente a
lista[len(lista)] = 'elemento
- es equivalente a
.insert(i,x)
insertax
en la posicióni
1,"Marvin")
robots.insert(# ["HAL", "Marvin", "C3PO", "R2D2", "T1000"]
Eliminar elementos
.remove()
elimina el elemento que se le indique:lista.remove('elemento')
, o
lista.remove(lista[i])
.pop()
devuelve el último elemento del objeto y lo elimina de la lista- acepta índices -
.pop(i)
.pop(0)
devuelve y elimina el primer elemento
- acepta índices -
del list[i]
elimina el último elemento sin devolver nadalist.clear()
borra toda la lista ([]
)
robots.pop()# 'T1000'
robots# ["HAL", "Marvin", "C3PO", "R2D2"]
Ordenar elementos
Modifica la lista | Preserva la original | Descripción |
---|---|---|
list.sort() |
sorted(list) |
Ordena la lista alfabéticamente |
list.reverse() |
reversed(list) |
Orden la lista a la inversa |
set(list) |
Devuelve una lista de elementos únicos |
Concatenar listas
lista1 + lista2
, o
lista1.extend(lista2)
List comprehension
Es una forma de crear listas concisa que deshecha todas las variables generadas en el proceso. El formato es: [
+ expresión + for
+ (opcionalmente) for/if
+ ]
.
= [x**2 for x in range(10)]
squares # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
for x in [1,2,3] for y in [3,1,4] if x != y]
[(x, y) # [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
Nested list comprehension
= [
matrix 1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[
]
for row in matrix] for i in range(4)]
[[row[i] # [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
Tuplas
Una tupla es una secuencia ordenada y finita de (elementos; las tuplas son inmutables - una vez declaradas no se pueden modificar).
Las tuplas se definen con paréntesis ( )
.
Sets
Los sets son colecciones desordenadas que no contienen duplicados. Realmente es un hashtable.
Se pueden crear utilizando set()
o {}
- ATENCIÓN: si los corchetes están vacíos no se creará un set sino un diccionario; es mejor utilizar set()
para este tipo de operaciones.
La utilidad principal de un set es que iterar a través de ellos es mucho más rapido que iterar dentro de una lista o un diccionario. Para añadir un elemento a un set se utiliza set.add()
- tarda el 10% del tiempo que en iterar por una lista.
= {'apple', 'orange', 'grape', 'grape', 'grape', 'apple'}
basket # {'pear', 'apple', 'orange', 'banana'}
=set('abracadabra pata de cabra')
words# {'p', 't', ' ', 'b', 'c', 'd', 'e', 'r', 'a'}