Python
Listas
Listas
- Los literales de listas se escriben entre corchetes [ ]
colors = ['red', 'blue, 'green'] print(colors[0]) # red print(colors[2]) # green print(len(colors)) # 3
Listas
Asignación con el = en las listas no hace una copia. En vez de eso, hace que las 2 variables apunten a la misma lista en memoria
b = colors ## No copia la lista
Listas
- La "lista vacía" es sólo un par de corchetes vacíos []
- El '+' Funciona para unir 2 listas, así [1,2] + [3,4] da [1,2,3,4]
- Se pueden borrar elementos de una lista con del, por ejemplo:
lista = ['lunes', 'martes', 'miercoles']
del lista[1] # elimina el martes
FOR e IN
Es una forma fácil de recorrer elementos de una lista (u otra colección)
Recordar utilizar nombres significativos para la variable usada en el for
La construcción IN es en sí misma una manera fácil de ver si un elemento aparece en una lista
FOR e IN
valor in colección verifica si el valor está en la colección, retornando True/False
lista = ['larry', 'curly', 'moe']
if 'curly' in lista:
print 'vamos todavía!'
Range
- La función range(n) devuelve los números 0, 1, ..., n-1
- range(a, b) retorna a, a+1, ..., b-1
- La combinación del bucle for y la función range() te permite construir un bucle numérico tradicional
Hay una variante, xrange(), que internamente funciona diferente para que sea más rápida que range en casos donde la performance es clave. En python 3 range tiene la misma performance que xrange
Bucle While
Funciona similar al de otros lenguajes, incluso soporta break y continue
break termina el bucle y continúa en la siguiente línea fuera del bloque
continue termina la iteración actual y vuelve al principio del bloque continuando con la siguiente iteración
## Acceder a cada 3er elemento de la lista a
i = 0
while i < len(a):
print a[i]
i = i + 3
Métodos de listas
- lista.append(elem) Agrega 1 elemento al final de la lista. No retorna una nueva lista, modifica la original.
- lista.insert(indice, elem) inserta el elemento en el índice dado, moviendo el resto a la derecha.
- lista.extend(lista2) agrega los elementos en lista2 al final de lista. Usar + o += funciona de manera similar.
- lista.index(elem) Busca el elemento desde el comienzo de la lista retornando su indice. Devuelve ValueError si el elemento no aparece.
- lista.remove(elem) Busca la primera instancia del elemento dato y la elimina.
- list.reverse() Invierte la lista (no la retorna)
- list.pop(indice) Quita y retorna el elemento en el índice dado, o el de más a la derecha si no hay indice.
Métodos de Listas
Error común: los métodos de arriba no retornan una lista nueva, modifican la original
list = [1, 2, 3]
print list.append(4) ## NO, no funciona, append() retorna None
## Patron correcto:
list.append(4)
print list ## [1, 2, 3, 4]
Construcción de listas
Un patrón común es empezar con una lista vacía [], y después utilizar append() o extend() para agregarle elementos
list = [] ## Empieza como lista vacía
list.append('a') ## Usar append() para agregar elementos
list.append('b')
Slices con listas
Los slices funcionan igual que en las cadenas, y también pueden ser utilizadas para cambiar sub-partes de una lista
list = ['a', 'b', 'c', 'd']
print list[1:-1] ## ['b', 'c']
list[0:2] = 'z' ## reemplaza ['a', 'b'] con ['z']
print list ## ['z', 'c', 'd']
Funciones key
Es posible agregar un parámetro key para cada elemento de la lista antes de efectuar comparaciones
sorted("This is a test string from Andrew".split(), key=str.lower)
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
sorted(student_tuples, key=lambda student: student[2])
Material extra de lectura
Python - Listas
By Guillermo Nuñez
Python - Listas
- 2,234