HackerRank - Map and Lambda Function Solution
1 min read

HackerRank - Map and Lambda Function Solution

HackerRank - Map and Lambda Function Solution

Let's learn some new Python concepts! You have to generate a list of the first N 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 secondly, 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

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 in Python3

    
    cube = lambda x: x**3

    def fibonacci(n):
        if n<2:
            return range(n)
        init = [0,1]
        for i in range(0,n-2):
            add =init[i+1]+init[i]
            init.append(add)
        return(init)

    if __name__ == '__main__':
        n = int(input())
        print(list(map(cube, fibonacci(n))))
    

Enjoying these posts? Subscribe for more


Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

That's okay. But without advertising-income, we can't keep making this site awesome.

We don't have any banner, Flash, animation, obnoxious sound, or popup ad. We do not implement these annoying types of ads!

We need money to operate the site, and almost all of it comes from our online advertising.

Please add thepoorcoder.com to your ad blocking whitelist or disable your adblocking software.

×