﻿ Python: Check the sum of three elements from three arrays is equal to a target value - w3resource

Python: Check the sum of three elements from three arrays is equal to a target value

Python Basic - 1: Exercise-11 with Solution

Write a Python program to check the sum of three elements (each from an array) from three arrays is equal to a target value. Print all those three-element combinations.

Sample data:
/*
X = [10, 20, 20, 20]
Y = [10, 20, 30, 40]
Z = [10, 30, 40, 20]
target = 70
*/

Sample Solution:

Python Code:

``````# Import the 'itertools' module for advanced iteration tools and 'partial' from 'functools'.
import itertools
from functools import partial

# Define three lists and a target sum value.
X = [10, 20, 20, 20]
Y = [10, 20, 30, 40]
Z = [10, 30, 40, 20]
T = 70

# Define a function to check if the sum of a set of numbers equals a given target.
def check_sum_array(N, *nums):
if sum(x for x in nums) == N:
return (True, nums)
else:
return (False, nums)

# Generate the Cartesian product of the three lists.
pro = itertools.product(X, Y, Z)

# Create a partial function using the 'check_sum_array' function and the target sum 'T'.
func = partial(check_sum_array, T)

# Use 'starmap' to apply the partial function to each element in the Cartesian product.
sums = list(itertools.starmap(func, pro))

# Use a set to store unique valid combinations.
result = set()

# Iterate through the sums and print unique valid combinations.
for s in sums:
if s[0] == True and s[1] not in result:
result.add(s[1])
print(result)

``````

Sample Output:

```{(10, 20, 40)}
{(10, 20, 40), (10, 30, 30)}
{(10, 20, 40), (10, 30, 30), (10, 40, 20)}
{(10, 20, 40), (10, 30, 30), (20, 10, 40), (10, 40, 20)}
{(10, 20, 40), (20, 20, 30), (10, 30, 30), (20, 10, 40), (10, 40, 20)}
{(10, 20, 40), (10, 40, 20), (20, 10, 40), (10, 30, 30), (20, 20, 30), (20, 30, 20)}
{(10, 20, 40), (10, 40, 20), (20, 10, 40), (20, 40, 10), (10, 30, 30), (20, 20, 30), (20, 30, 20)}
```

Explanation:

The above Python code tries to find unique combinations of elements from three lists (X, Y, Z) whose sum is equal to a target value T. Here's a brief explanation:

• Import the "itertools" module for advanced iteration and the "partial()" function from the "functools" module.
• Define three lists (X, Y, Z) and a target sum value (T).
• Define a function (check_sum_array) that checks if the sum of a set of numbers equals a given target.
• Generate the Cartesian product of the three lists (X, Y, Z).
• Create a partial function using the "check_sum_array()" function and the target sum T.
• Apply the partial function to each element in the Cartesian product using "starmap".
• Use a set (result) to store unique valid combinations.
• Iterate through the sums and print unique valid combinations.

Flowchart:

Python Code Editor :

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿

Follow us on Facebook and Twitter for latest update.