Some Advanced Features of Python and Its uses
Here Some Advanced Features of Python and Its uses
The advanced features of any programming language are usually discovered through extensive experience. You’re coding up a complicated project and find yourself searching for something on stack over flow. You then come across a beautifully elegant solution to your problem that uses a Python feature you never even knew existed!
That’s totally the funnest way to learn: discovery by exploration and accident!
Here are 5 of the most useful advanced features of the Python programming language — and more importantly how to use them!
1. Lambda functions
A Lambda Function is a small, anonymous function — anonymous in the sense that it doesn’t actually have a name.
Python functions are typically defined using the style of def a_function_name() , but with lambda functions we don’t give it a name at all. We do this because the purpose of a lambda function is to perform some kind of simple expression or operation without the need for fully defining a function.
A lambda function can take any number of arguments, but must always have only one expression:
x = lambda a, b : a * b
print(x(5, 6)) # prints '30'
x = lambda a : a*3 + 3
print(x(3)) # prints '12'
See how easy that was! We performed a bit of basic math without the need for defining a full on function. This is one of the many features of Python that makes it a clean and simplistic programming language to use.
Map() is a built-in Python function used to apply a function to a sequence of elements like a list or dictionary. It’s a very clean and most importantly readable way to perform such an operation.
return a * a
x = map(square_it_func, [1, 4, 7])
print(x) # prints '[1, 16, 47]'
def multiplier_func(a, b):
return a * b
x = map(multiplier_func, [1, 4, 7], [2, 5, 8])
print(x) # prints '[2, 20, 56]'
Check out the example above! We can apply our function to a single list or multiple lists. In face, you can use a map with any python function you can think of, as long as it’s compatible with the sequence elements you are operating on.
The Filter built-in function is quite similar to the Map function in that it applies a function to a sequence (list, tuple, dictionary). The key difference is that filter() will only return the elements which the applied function returned as True.
Check out the example below for an illustration:
# Our numbers
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
# Function that filters out all numbers which are odd
if num % 2 == 0:
filtered_numbers = filter(filter_odd_numbers, numbers)
# filtered_numbers = [2, 4, 6, 8, 10, 12, 14]
Not only did we evaluate True or False for each list element, the *filter()*function also made sure to only return the elements which matched as True. Very convenient for handling to two steps of checking an expression and building a return list.