Funciones built-in
- synopsis
El intérprete de Python tiene una serie de funciones y tipos incluidos en él que están siempre disponibles
Funciones de orden superior
Funciones que reciben como parámetro a otra función.
filter
Recorre toda la lista para devolver uno varios elementos de esta. Sirve para filtrar (devolver) elementos específicos en una lista.
my_list = [1, 4, 5, 6, 9]
odd = list(filter(lamda x: x%2 != 0, my_list))
Output:
>>> [1, 5, 9]
map
Ejecuta una función sobre cada uno de los elementos de un iterador. Retorna un lista o tupla que son el resultado de esa operación.
def dup(n):
return n * 2
list(map(dup, [1, 2, 3, 4]))
Output:
>>> [2, 4, 6, 8]
reduce
Devuelve un valor haciendo una operación con todos los elementos. Sirve para hacer acumulaciones de los elementos de una lista.
Sintaxis: filter(funcion, iterable)
from functools import reduce
my_list = [2, 2, 2, 2, 2]
odd = reduce(lambda a, b: a * b, my_list)
Output:
>>> 32
zip
zip toma como argumento dos o más objetos iterables(idealmente con la misma
cantidad de elementos) y retorna un nuevo iterable.
names = ['Morena', 'Bárbara']
ages = [18, 25]
list(zip(names, ages))
Output:
>>> [('Morena', 18), ('Bárbara', 25)]
Funciones anónimas: lambda
Son funciones que no tienen un identificardor (nombre), retornan un objeto de tipo función que se guardarán en una variable
Sintaxis: lambda <parámetro>: <función de una línea>
palindrome = lambda string: string == string[::-1]
print(palindrome('ana'))
dir
dir: Nos dice todos los métodos que podemos utilizar dentro de un objeto.
help
help: nos imprime en pantalla el docstrings o comentario de ayuda o instrucciones que posee la función.
Casi todas las funciones en Python las tienen.
hasattr
Toma como argumento un objeto y el nombre de un atributo y retorna True si el objeto tiene el atributo
class Rectangulo:
def __init__(self, b, h):
self.b = b
self.h = h
rect = Rectangulo(10, 5)
print(hasattr(rect, "b")) # True
print(hasattr(rect, "area")) # False
range
Retorna una sucesión de números enteros.
Cuando se le pasa un único argumento n, la sucesión empieza desde el cero y culmina en n-1.
>>> list(range(10))
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Si se especifican dos argumentos, el primero pasa a indicar el comienzo de la sucesión:
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
super
La función super() permite invocar el método de una clase padre desde una clase hija
class ClassA:
def message(self):
print("Hola")
class ClassB(ClassA):
def message(self):
super().message()
print("mundo!")
b = ClassB()
b.message()
Usando strings
upper: convierte todo el string a mayúsculas
lower: convierte todo el string a minúsculas
find: encuentra el indice en donde existe un patrón que nosotros definimos
startswith: significa que empieza con algún patrón.
endswith: significa que termina con algún patrón
capitalize: coloca la primera letra en mayúscula y el resto en minúscula
in y not in nos permite saber con cualquier secuencia si una subsecuencia o substrings se encuentra adentro de la secuencia mayor.