Lambda in Python - Doubt

Asked

Viewed 860 times

2

In study on python 3, what would be the function of lambda in Python, what it serves and when it is used?

2 answers

2

Lambda are one-line functions (usually called once). They are known as Anonimas functions in some languages. You may want to use both when you don’t need to use a function more than once in a program. They work as a regular function.

Syntax:

lambda arguments: manipulate(arguments)

Example:

# Definindo uma função regular 
deff add(x , y):
    return x+y

# A mesma função com lambda
add = lambda x, y: x+y  

To call it, use the same syntax for calling the regular function, for example:

print(add(3, 7))
# output: 10

In the above example, the function was created and assigned to a variable, in this case it could be used more than once, but most of the time lambdas are executed "inline", discarded after use, as in the examples of map() and filter(), next.

Dual functions are generally used in python as an argument for "higher order" functions (functions that receive other functions as part of arguments), often used as internal functions of filter() and map().

Example using filter()

The function filter() in python takes in its argument a function and a list and returns a new list containing the items that the function evaluates as True.

mylist = [1, 2, 3, 4, 5, 6]
newlist = list(filter(lambda x: (x%2 == 0) , mylist))

print(newlist)
[2, 4, 6]

Example using map()

The map function receives a list and a function and returns a new list in which the elements are derived from the application of the function sent in each element of the received list.

mylist = [1, 2, 3, 4, 5, 6]
newlist = list(map(lambda x: x*2, mylist))

print(newlist)
[2, 4, 6, 8, 10, 12]

List Comprehensions

Whenever you feel the need to use lambda in which the return is a list, see if it is not possible to use the Lists comprehensions, are much more elegant, intuitive and pythonic, see the same examples with them:

# List comprehension like a filter()
mylist = [1, 2, 3, 4, 5, 6]
newlist1 = [n for n in mylist if (n%2==0)]
print(newlist1)
[2, 4, 6]

# List comprehension like a map()
newlist2 = [n*2 for n in mylist1]
print(newlist2)
[2, 4, 6, 8, 10, 12]

0

Lambda is a function defined in the program’s Runtime (runtime). It can be used to simplify some operations, but more than that English brings a functional semantics to the language, in which you work with objects and functions, an example of using lambda would be to take a vector of numbers and multiply them by 2.

Lambda does not require an explicit loop:

items = [1, 2, 3, 4, 5]
squared = []

for i in items:
    squared.append(i**2)

print ("squared =", squared)
vc pode usar a função map

def square(x):
    return x**2
items = [1, 2, 3, 4, 5]
squared = list(map(square, items))
print ("squared =", squared)
ou vc pode criar um lambda diretamente

items = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, items))
print ("squared =", squared)
  • 1

    >Lambda is a function defined in the program’s Runtime (runtime) - what does that mean exactly? Not the case for all functions?

Browser other questions tagged

You are not signed in. Login or sign up in order to post.