Más sobre listas El tipo de dato lista tiene algunos métodos más. Aquí están todos los métodos de los objetos lista:

list.append (x) :Agrega un ítem al final de la lista.

list.extend (list) : Extiende la lista agregándole todos los ítems de la lista dada.

list.insert (i, x) : Inserta un ítem en una posición dada. El primer argumento es el índice del ítem delante del cual se insertará.

list.remove (x) : Quita el primer ítem de la lista cuyo valor sea x. Es un error si no existe tal ítem.

list.pop () : Quita y  devuelve el último ítem de la lista.

list.clear () : Quita todos los elementos de la lista.

list.index (x)  :Devuelve un índice basado en cero en la lista del primer ítem cuyo valor sea x. Levanta una excepción ValueError si no existe tal ítem.

list.count (x) : Devuelve el número de veces que x aparece en la lista.

list.sort () : Ordena los ítems de la lista en sorteo.

list.reverse () :Invierte la lista.

list.copy () : Devuelve una copia superficial de la lista. Equivalente a a[:].

>>> frutas = ['naranja', 'manzana' , 'pera' , 'banana', 'kiwi', 'manzana', 'banana']
>>> frutas.count('manzana') #cuantas palabras manzanas hay
2
>>> frutas.count('mandarina') #si no hay ninguna botará 0
0
>>> frutas.index('banana') # en que orden esta la primera banana empezando de 0 
3
>>> frutas.index('banana', 4) #en que orden esta banana contando desde la posicion 4 
6
>>> frutas.reverse() # invertirá los items de la lista
>>> frutas
['banana', 'manzana', 'kiwi', 'banana', 'pera', 'manzana', 'naranja']
>>> frutas.append('uva') #se agregará uva en nuestra lista
>>> frutas
['banana', 'manzana', 'kiwi', 'banana', 'pera', 'manzana', 'naranja', 'uva']
>>> frutas.sort()
>>> frutas
['banana', 'banana', 'kiwi', 'manzana', 'manzana', 'naranja', 'pera', 'uva']
>>> frutas.pop() #quitará un item aletorio
'uva'
>>> >>> frutas.extend(frutas) #agregará la lista.
>>> frutas
['banana', 'banana', 'kiwi', 'manzana', 'manzana', 'naranja', 'pera', 'banana', 'banana', 'kiwi', 'manzana', 'manzana', 'naranja', 'pera']
>>>

Captura de pantalla de 2017-06-11 23-13-54

Usando listas como pilas

Los métodos de lista hacen que resulte muy fácil usar una lista como una pila, donde el último elemento añadido es el primer elemento retirado. Para agregar un ítem a la cima de la pila, use append(). Para retirar un ítem de la cima de la pila, use pop() sin un índice explícito. Por ejemplo:

>>> stack = [3, 4, 5 ]
>>> stack.append(6) #agregamos el 6 a la lista
>>> stack.append(7) #agregamos el 7 a la lista
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop() # aqui nos mostrará que valor quita, por default quita el ultimo 
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop() # ahora por default quitará el 6
6
>>> stack.pop() # por default quitará el 5
5
>>> stack
[3, 4]

Captura de pantalla de 2017-06-11 23-29-32

 

Usando listas como colas

También es posible usar una lista como una cola, donde el primer elemento añadido es el primer elemento retirado; sin embargo, las listas no son eficientes para este propósito. Agregar y sacar del final de la lista es rápido, pero insertar o sacar del comienzo de una lista es lento (porque todos los otros elementos tienen que ser desplazados por uno). Para implementar una cola, usá collections.deque el cual fue diseñado para agregar y sacar de ambas puntas de forma rápida. Por ejemplo

>>> queue = deque (["Eric", "John", "Michael"])
>>> queue.append("Terry") # llega Terry 
>>> queue.append("Graham") # llega Graham 
>>> queue.popleft() # tiene la misma funcion de pop pero por izquierda
'Eric'
>>> queue.popleft() # ahora se va John
'John'
>>> queue
deque(['Michael', 'Terry', 'Graham'])
>>>

Captura de pantalla de 2017-06-11 23-47-59

Comprensión de listas

Las comprensiones de listas ofrecen una manera concisa de crear listas. Sus usos comunes son para hacer nuevas listas donde cada elemento es el resultado de algunas operaciones aplicadas a cada miembro de otra secuencia, hay diferentes formas de crear una lista ahora veremos una de cuadrados:

 >>> cuadrados = [] #primera forma de crear una lista
>>> for x in range(10):
... cuadrados.append(x**2)
... 
>>> cuadrados
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> cuadrdos = list(map(lambda x: x**2, range(10))) #segunda forma
>>> cuadrdos
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> cuadrs = [x ** 2 for x in range(10)] #tercera forma
>>> cuadrs
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Captura de pantalla de 2017-06-12 00-05-05

como logramos ver la tercera forma es la mas legible y mas resumida #la forma mas rápida.

 

Una lista de comprensión consiste de corchetes rodeando una expresión seguida de la declaración for y luego cero o más declaraciones for o if. El resultado será una nueva lista que sale de evaluar la expresión en el contexto de los for o if que le siguen. Por ejemplo, esta lista de comprensión combina los elementos de dos listas si no son iguales:

>>> [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
>>> dupla = [] # es lo mismo que en lo primero
>>> for x in [1, 2, 3]:
... for y in [3,1,4]:
... if x != y:
... dupla.append((x,y))
... 
>>> dupla
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

Captura de pantalla de 2017-06-12 00-16-14

Notá como el orden de los for y if es el mismo en ambos pedacitos de código. Si la expresión es una tupla (como el (x, y) en el ejemplo anterior), debe estar entre paréntesis.

 

ahora veremos : filtrar, función, llamar método, creación de duplas, importar pi.

>>> vec = [-4, -2, 0, 2, 4] #creación de lista

>>> [x * 2 for x in vec] #duplicará los valores de la lista vec
[-8, -4, 0, 4, 8]

>>> [x for x in vec if x>= 0] # solo mostrará positivos
[0, 2, 4]

>>> [abs(x) for x in vec] #aplica una función a todos los elementos
[4, 2, 0, 2, 4]

>>> frutafresca = ['banana', 'fresa', 'manzana']
>>> [arma.strip() for arma in frutafresca]
['banana', 'fresa', 'manzana']

>>> [(x, x ** 2) for x in range (6)] #creación de dupla
[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]

>>> vec = [[1,2,3], [4,5,6], [7,8,9]] # poner todo en una lista
>>> [num for elem in vec for num in elem]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> from math import pi #importar pi
>>> [str(round(pi, i)) for i in range(1, 6)]
['3.1', '3.14', '3.142', '3.1416', '3.14159']

Captura de pantalla de 2017-06-12 00-32-40

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s