Navbar menu

HackerRank Python Solution - Functionals - Map and Lambda Function

Let's learn some new Python concepts! You have to generate a list of the first Fibonacci numbers, 0 being the first number. Then, apply the map function and a lambda expression to cube each Fibonacci number and print the list.

Concept:
  • The map() function applies a function to every member of an iterable and returns the result. It takes two parameters: first, the function that is to be applied, and second, the iterables.
  • Let's say you are given a list of names, and you have to print a list that contains the length of each name.
>> print (list(map(len, ['Tina', 'Raj', 'Tom'])))  
[4, 3, 3]  
  • Lambda is a single expression anonymous function often used as an inline function. In simple words, it is a function that has only one line in its body. It proves very handy in functional and GUI programming.
>> sum = lambda a, b, c: a + b + c
>> sum(1, 2, 3)
6
Note:
  • Lambda functions cannot use the return statement and can only have a single expression. Unlike def, which creates a function and assigns it a name, lambda creates a function and returns the function itself. Lambda can be used inside lists and dictionaries.
Input Format:
  • One line of input: an integer N.
Constraints:
  • 0 <= N <= 15
Output Format:
  • A list on a single line containing the cubes of the first N Fibonacci numbers.
Sample Input:

5
Sample Output:

[0, 1, 1, 8, 27]
Explanation:
  • The first fibonacci numbers are [0, 1, 1, 2, 3], and their cubes are [0, 1, 1, 8, 27].
Solution:

cube = lambda x: x**3 # complete the lambda function 

def fibonacci(n):
    # return a list of fibonacci numbers
    count,n1 = 0,0
    n2 =1
    ans = []
    
    while count < n:
        ans.append(n1)
        nth = n1 + n2
        # update the new values 
        n1, n2 = n2, nth
        count += 1
    return ans
Disclaimer: The problem statement is given by hackerrank.com but the solution is generated by the Geek4Tutorial admin. We highly recommend you solve this on your own, however, you can refer to this in case of help. If there is any concern regarding this post or website, please contact us using the contact form. Thank you!

No comments:

Post a Comment