Funciones avanzadas de Python

Python es un lenguaje de programación interpretado de alto nivel que tiene una sintaxis sencilla. Los códigos de Python se compilan línea por línea, lo que hace que la depuración de errores sea mucho más fácil y eficiente. Python funciona en casi todos los tipos de plataformas, como Windows, Mac, Linux, Raspberry Pi, etc. Python admite módulos y paquetes, lo que fomenta la modularidad del programa y la reutilización del código. Python se puede usar para manejar grandes cantidades de datos y realizar problemas matemáticos complejos y también se puede usar para el desarrollo de aplicaciones.

Funciones avanzadas de Python

Generadores

Las funciones generadoras nos permiten declarar una función que se comporta igual que un iterador, es decir, puede usarse en lugar de un bucle for. Los generadores son iteradores, pero solo pueden iterar sobre ellos una vez. Los generadores introducen la instrucción yield en Python, que funciona un poco como return porque devuelve un valor. Un generador creará elementos y los almacenará en la memoria solo cuando los necesite, es decir, uno a la vez. Eso significa que, si tiene que crear una gran cantidad de números de punto flotante, ¡solo los almacenará en la memoria uno a la vez!. Esto simplifica enormemente el código y lo hace más eficiente que un simple bucle for.
Ejemplo 1:-

# A simple generator function
def my_func():
    n = 1
    print('First Number')
    # Generator function contains yield statements
    yield n
  
    n += 1
    print('Second Number ')
    yield n
  
    n += 1
    print('Last Number ')
    yield n
  
# Using for loop
for number in my_func():
    print(number)    

Producción:

First Number
1
Second Number 
2
Last Number 
3


Ejemplo 2:-

def str(my_str):
    length = len(my_str)
    for i in range(0, length ):
        yield my_str[i]
  
# For loop to print the string as 
# it is using generators and for loop.
for char in str("Shivam And Sachin"):
    print(char, end ="")

Producción:

Shivam And Sachin

Nota: Para obtener más información, consulte Generadores en Python

Decorador

Los decoradores se encuentran entre la parte importante de Python. Son muy útiles para agregar funcionalidad a una función que se implementa antes sin realizar ningún cambio en la función original. En Decorators, las funciones se pasan como argumento a otra función y luego se llaman dentro de la función contenedora. Nos permiten envolver otra función para extender la funcionalidad de una función envuelta, sin modificarla permanentemente. Los decoradores generalmente se llaman antes de la definición de una función que desea decorar. Un decorador es muy eficiente cuando desea dar un código actualizado a un código existente.


Ejemplo 1:-

def decorator(a_func):
  
    def wrapper():
        print("Before executing function requiring decoration.")
  
        a_func()
  
        print("After executing requiring decoration.")
  
    return wrapper
  
def function():
    print("Function requiring decoration.")
  
function()
  
function = decorator(function)
  
function()

Producción:

Function requiring decoration.
Before executing function requiring decoration.
Function requiring decoration.
After executing requiring decoration.


Ejemplo 2:-

def flowerDecorator(func):
    def newFlowerPot(n):
        print("We are decorating the flower vase.")
        print("You wanted to keep % d flowers in the vase." % n)
  
        func(n)
  
        print("Our decoration is done.")
  
    return newFlowerPot
  
def flowerPot(n):
    print("We have a flower vase.")
  
flowerPot = flowerDecorator(flowerPot)
flowerPot(5)

Producción:

We are decorating the flower vase.
You wanted to keep 5 flowers in the vase.
We have a flower vase.
Our decoration is done.

Nota: Para obtener más información, consulte Decoradores en Python

Funciones Lambda

La función Lambda es una pequeña función anónima. Estos tipos de funciones pueden tomar cualquier cantidad de argumentos, pero solo pueden tener una expresión. Las funciones normales se definen con la defpalabra clave, mientras que las funciones anónimas se definen con la palabra clave » lambda«. Las funciones lambda no requieren la instrucción return, siempre devuelven el valor obtenido al evaluar la expresión lambda.

Ejemplo:- Código para multiplicar 3 números.

x = lambda a, b, c : a * b*c
print(x(5, 4, 3))

Producción:

60

Ejemplo:- Código para sumar 3 números.

x = lambda a, b, c : a + b+c
print(x(12, 40, 8))

Producción:

60

Nota: Para obtener más información, consulte Python lambda

Mapa

Map()es una función incorporada de Python que se usa para aplicar una función a una secuencia de elementos, como una lista o un diccionario, y devuelve una lista de los resultados. El objeto de mapa de Python es un iterador, por lo que podemos iterar sobre sus elementos. También podemos convertir objetos de mapa en objetos de secuencia como lista, tupla, etc. Es una manera fácil y eficiente de realizar operaciones como mapear dos listas o secuenciar elementos de una lista o diccionario.


Ejemplo: – Código para convertir una string a su longitud.

def func(n):
    return len(n)
  
a =('Singla', 'Shivam', 'Sachin')
x = map(func, a)
print(a)
  
# convert the map into a list,
#  for readability:
print(list(x))

Producción:

('Singla', 'Shivam', 'Sachin')
[6, 6, 6]


Ejemplo: – Código para asignar el número a su cubo.

numbers = (1, 2, 3, 4)
res = map(lambda x: x * x*x, numbers)
  
# converting map object to list
numbersCube = list(res)
print(numbersCube)

Producción:

[1, 8, 27, 64]

Nota: Para obtener más información, consulte la función Python map()

Filtrar

Filter() es una función incorporada que es bastante similar a la función Map ya que aplica una función a una secuencia (tupla, diccionario, lista). La diferencia clave es que la función filter() toma una función y una secuencia como argumentos y devuelve un iterable, solo arroja los elementos en secuencia para los cuales la función devuelve True y todos los elementos de la secuencia que se evalúan como False se eliminan. En palabras simples, el método filter() construye un iterador a partir de elementos de un iterable para el cual una función devuelve verdadero.


Ejemplo 1:-

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
          11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
  
# Function that filters out all 
# numbers which are multiple of 4
def filter_numbers(num):
  
    if num % 4 == 0:
        return True
    else:
        return False
  
filtered_numbers = filter(filter_numbers, numbers)
filters = list(filtered_numbers)
print(filters)

Producción:

[4, 8, 12, 16, 20]


Ejemplo 2:-

# To sort all ages which 
# are above 20 years
ages = [35, 21, 17, 18, 24,
        32, 50, 59, 26, 6, 14]
  
def Func(x):
  if x < 20:
    return False
  else:
    return True
  
adults = filter(Func, ages)
  
for z in adults:
  print(z)

Producción:

35
21
24
32
50
59
26

Nota: Para obtener más información, consulte filter() en python

Comprimir y descomprimir

Zip()es una función incorporada de Python que nos brinda un iterador de tuplas. Zip es una especie de contenedor que contiene datos reales en su interior. Toma elementos iterables como entrada y devuelve un iterador sobre ellos (un iterador de tuplas). Evalúa el iterable de izquierda a derecha. Podemos usar el iterador resultante para resolver problemas comunes de programación de manera rápida y eficiente, como crear diccionarios. Descomprimir es simplemente el proceso inverso de comprimir y para descomprimir usamos el carácter * con la zip()función.

Ejemplo 1:-

# ZIPPING 
a = ("SHIVAM", "SACHIN", "VIKALP", "RAGHAV", "PRANAY")
b = ("SINGLA", "SINGLA", "GARG", "GUPTA", "GUPTA")
  
x = zip(a, b)
  
# use the tuple() function to display
#  a readable version of the result:
print(tuple(x))

Producción:

((‘SHIVAM’, ‘SINGLA’), (‘SACHIN’, ‘SINGLA’), (‘VIKALP’, ‘GARG’), (‘RAGHAV’, ‘GUPTA’), (‘PRANAY’, ‘GUPTA’) )

Ejemplo 2:-

# ZIPPING AND UNZIPPING
name = ['sachin', 'shivam', 'vikalp']
age = [20, 18, 19]
  
result = zip(name, age)
result_list = list(result)
print(result_list)
  
n, a = zip(*result_list)
  
print('name =', n)
print('age =', a)

Producción:

[('sachin', 20), ('shivam', 18), ('vikalp', 19)]
name = ('sachin', 'shivam', 'vikalp')
age = (20, 18, 19)

Publicación traducida automáticamente

Artículo escrito por sahivam4u y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *