# Python – Cubes Product in list

Last Updated : 16 Feb, 2023

Python being the language of magicians can be used to perform many tedious and repetitive tasks in a easy and concise manner and having the knowledge to utilize this tool to the fullest is always useful. One such small application can be finding product of cubes of list in just one line. Letâ€™s discuss certain ways in which this can be performed.

Method #1: Using reduce() + lambda The power of lambda functions to perform lengthy tasks in just one line, allows it combined with reduce which is used to accumulate the subproblem, to perform this task as well. Works with only Python 2.

## Python

 `# Python code to demonstrate ` `# Cubes Product in list` `# using reduce() + lambda`   `# initializing list` `test_list ``=` `[``3``, ``5``, ``7``, ``9``, ``11``]`   `# printing original list ` `print` `(``"The original list is : "` `+` `str``(test_list))`   `# using reduce() + lambda` `# Cubes Product in list` `res ``=` `reduce``(``lambda` `i, j: i ``*` `j``*``j ``*` `j, [test_list[:``1``][``0``]``*``*``3``]``+``test_list[``1``:])`   `# printing result` `print` `(``"The product of cubes of list is : "` `+` `str``(res))`

Output

```The original list is : [3, 5, 7, 9, 11]
The product of cubes of list is : 1123242379875```

Time Complexity: O(n)
Auxiliary Space: O(1)

Method #2 : Using map() + loop The similar solution can also be obtained using the map function to integrate and external product function to perform the product of the cubed number.

## Python3

 `# Python3 code to demonstrate ` `# Cubes Product in list` `# using loop + max()`   `# getting Product ` `def` `prod(val) : ` `    ``res ``=` `1` `    ``for` `ele ``in` `val: ` `        ``res ``*``=` `ele ` `    ``return` `res `   `# initializing list` `test_list ``=` `[``3``, ``5``, ``7``, ``9``, ``11``]`   `# printing original list ` `print` `(``"The original list is : "` `+` `str``(test_list))`   `# using loop + max()` `# Cubes Product in list` `res ``=` `prod(``map``(``lambda` `i : i ``*` `i ``*` `i, test_list))`   `# printing result` `print` `(``"The product of cubes of list is : "` `+` `str``(res))`

Output

```The original list is : [3, 5, 7, 9, 11]
The product of cubes of list is : 1123242379875```

Time complexity: O(n), where n is the number of items in the list, because it has to traverse the list once to calculate the cube of each element and multiply the results.
Auxiliary space: O(1), because it only uses a constant amount of extra space to store the result.

Method #3: Using math.pow()

## Python3

 `# Python code to demonstrate` `# Cubes Product in list`     `# initializing list` `test_list ``=` `[``3``, ``5``, ``7``, ``9``, ``11``]`   `# printing original list` `print` `(``"The original list is : "` `+` `str``(test_list))`     `# Cubes Product in list` `res ``=` `1` `for` `i ``in` `test_list:` `    ``import` `math` `    ``res``*``=``math.``pow``(i,``3``)` `res``=``int``(res)` `# printing result` `print` `(``"The product of cubes of list is : "` `+` `str``(res))`

Output

```The original list is : [3, 5, 7, 9, 11]
The product of cubes of list is : 1123242379875```

Time Complexity : O(N)
Auxiliary Space : O(N)

Method #4: Using functools.reduce() and operator.mul

## Python3

 `# Python code to demonstrate` `# Cubes Product in list`   `# initializing list` `test_list ``=` `[``3``, ``5``, ``7``, ``9``, ``11``]` `# printing original list` `print` `(``"The original list is : "` `+` `str``(test_list))` `# Cubes Product in list` `x``=``[]` `for` `i ``in` `test_list:` `    ``x.append(i``*``*``3``)` `from` `functools ``import` `reduce` `import` `operator` `res``=``reduce``(operator.mul,x,``1``)`   `# printing result` `print` `(``"The product of cubes of list is : "` `+` `str``(res))`

Output

```The original list is : [3, 5, 7, 9, 11]
The product of cubes of list is : 1123242379875```

Time Complexity : O(N)
Auxiliary Space : O(N)

## Python3

 `import` `numpy as np`   `# Initializing list` `test_list ``=` `[``3``, ``5``, ``7``, ``9``, ``11``]`   `# Printing original list` `print``(``"The original list is : "``, test_list)`   `# Cubes product in list` `result ``=` `np.prod(np.power(test_list, ``3``))`   `# Printing result` `print``(``"The product of cubes of list is : "``, result)`

Output:

The original list is :  [3, 5, 7, 9, 11]
The product of cubes of list is :  1123242379875
Time Complexity: O(n)
Auxiliary Space: O(1)

The numpy library provides the prod() function which can be used to calculate the product of all elements in an array, and the power() function which can be used to raise the elements in the list to a specified power. In this case, we raise each element to the power of 3 and then calculate the product of the resulting list using the prod() function.

Method #6: Using list comprehension:

## Python3

 `test_list ``=` `[``3``, ``5``, ``7``, ``9``, ``11``]` `print``(``"The original list is : "` `+` `str``(test_list))` `result ``=` `1` `for` `ele ``in` `[ele``*``*``3` `for` `ele ``in` `test_list]:` `    ``result ``*``=` `ele` `print``(``"The product of cubes of list is : "` `+` `str``(result))` `#This code is contributed by Jyothi pinjala.`

Output

```The original list is : [3, 5, 7, 9, 11]
The product of cubes of list is : 1123242379875```

Time Complexity: O(n)
Auxiliary Space: O(1)

Method 7: Using simple for loop

## Python3

 `# initializing list` `test_list ``=` `[``3``, ``5``, ``7``, ``9``, ``11``]`   `# printing original list` `print``(``"The original list is : "` `+` `str``(test_list))`   `# initializing result` `res ``=` `1`   `# calculating product of cubes using a for loop` `for` `i ``in` `test_list:` `    ``res ``*``=` `i``*``*``3`   `# printing result` `print``(``"The product of cubes of list is : "` `+` `str``(res))`

Output

```The original list is : [3, 5, 7, 9, 11]
The product of cubes of list is : 1123242379875```

Time Complexity: O(n)
Auxiliary Space: O(1)