Listas
Una lista es una colección ordenada de valores.
Una lista puede contener cualquier cosa.
En Python, el tipo de datos que representa a las listas
se llama list.Cómo crear listas
Las dos maneras principales de crear una lista son:- usar una lista literal, con los valores entre corchetes:
>>> primos = [2, 3, 5, 7, 11] >>> primos [2, 3, 5, 7, 11] >>> [] [] >>> [1.0 + 2.0, 3.0 + 4.0 + 5.0] [3.0, 12.0] >>> ['hola ' + 'mundo', 24 * 7, True or False] ['hola mundo', 168, True]
- usar la función list aplicada sobre un iterable:
>>> list('hola') ['h', 'o', 'l', 'a'] >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list() []
Operaciones sobre listas
len(l) entrega el largo de la lista;
es decir, cuántos elementos tiene:
>>> colores = ['azul', 'rojo', 'verde', 'amarillo']
>>> len(colores)
4
>>> len([True, True, True])
3
>>> len([])
0
l[i] entrega el i-ésimo valor de la lista.
El valor i se llama índice del valor.
Al igual que para los strings,
los índices parten de cero:
>>> colores = ['azul', 'rojo', 'verde', 'amarillo']
>>> colores[0]
'azul'
>>> colores[3]
'amarillo'
>>> colores[1] = 'negro'
>>> colores
['azul', 'negro', 'verde', 'amarillo']
Si el índice i indica un elemento que no está en la lista,
ocurre un error de índice:
>>> colores[4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> colores[-1]
'amarillo'
>>> colores[-4]
'azul'
l.append(x) agrega el elemento x al final de la lista:
>>> primos = [2, 3, 5, 7, 11]
>>> primos.append(13)
>>> primos.append(17)
>>> primos
[2, 3, 5, 7, 11, 13, 17]
Un comentario al margen:
append es un método.
Los métodos son funciones que están dentro de un objeto.
Cada lista tiene su propia función append.
Es importante tener esta distinción clara,
ya que hay operaciones que están implementadas como funciones
y otras como métodos.
sum(x) entrega la suma de los valores de la lista:
>>> sum([1, 2, 1, -1, -2])
1
>>> sum([])
0
l1 + l2 concatena las listas l1 y l2:
>>> list('perro') + [2, 3, 4]
['p', 'e', 'r', 'r', 'o', 2, 3, 4]
l * n repite n veces la lista l:
>>> [3.14, 6.28, 9.42] * 2
[3.14, 6.28, 9.42, 3.14, 6.28, 9.42]
>>> [3.14, 6.28, 9.42] * 0
[]
Para saber si un elemento x está en la lista l,
se usa x in l.
La versión negativa de in es not in:
>>> r = range(0, 20, 2)
>>> r
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
>>> 12 in r
True
>>> 15 in r
False
>>> 15 not in r
True
l[i:j] es el operador de rebanado,
que entrega una nueva lista
que tiene desde el i-ésimo
hasta justo antes del j-ésimo elemento
de la lista l:
>>> x = [1.5, 3.3, 8.4, 3.1, 2.9]
>>> x[2:4]
[8.4, 3.1]
l.count(x) cuenta cuántas veces está
el elemento x en la lista:
>>> letras = list('paralelepipedo')
>>> letras.count('p')
3
l.index(x) entrega cuál es el índice del valor x:
>>> colores = ['azul', 'rojo', 'verde', 'amarillo']
>>> colores.index('verde')
2
>>> colores.index('fucsia')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'fucsia' is not in list
l.remove(x) elimina el elemento x de la lista:
>>> l = [7, 0, 3, 9, 8, 2, 4]
>>> l.remove(2)
>>> l
[7, 0, 3, 9, 8, 4]
del l[i] elimina el i-ésimo elemento de la lista:
>>> l = [7, 0, 3, 9, 8, 2, 4]
>>> del l[2]
>>> l
[7, 0, 9, 8, 2, 4]
l.reverse() invierte la lista:
>>> l = [7, 0, 3, 9, 8, 2, 4]
>>> l.reverse()
>>> l
[4, 2, 8, 9, 3, 0, 7]
l.sort() ordena la lista:
>>> l = [7, 0, 3, 9, 8, 2, 4]
>>> l.sort()
>>> l
[0, 2, 3, 4, 7, 8, 9]
>>> ramos = ['Progra', 'Mate', 'Fisica', 'Ed.Fisica']
>>> ramos[:2]
['Progra', 'Mate']
>>> len(ramos) # la lista sigue teniendo cuatro elementos
4
Iteración sobre una lista
Una lista es un objeto iterable.
Esto significa que sus valores se pueden recorrer
usando un ciclo for:
valores = [6, 1, 7, 8, 9]
for i in valores:
print i ** 2
36
1
49
64
81
No hay comentarios:
Publicar un comentario