def square(x):
    return x ** 2

def cube(x):
    return x ** 3

def power(r):
    return lambda x: x(r)

def main():
    funcs = [square, cube]
for y in range(5):
    value = map(power(y), funcs)
print(value)
if __name__ == '__main__':
    main()
map with lambda vs map with function - how to pass more than one variable to function?