w3resource

Python: Find the number which when appended to the list makes the total 0

Python Programming Puzzles: Exercise-61 with Solution

Write a Python program to find the number which when appended to the list makes the total 0.

Input:
[1, 2, 3, 4, 5]
Output:
-15

Input:
[-1, -2, -3, -4, 5]
Output:
5

Input:
[10, 42, 17, 9, 1315182, 184, 102, 29, 15, 39, 755]
Output:
-1316384

Pictorial Presentation:

Python: Find the number which when appended to the list makes the total 0.

Sample Solution:

Python Code:

#License: https://bit.ly/3oLErEI

def test(nums):
    dset = set(nums)
    result = sum(nums)
    dmin = abs(min(nums) - sum(dset^set(nums)))
    for d in dset^set(nums):
        dcopy = list(nums)
        dcopy.append(d)
        ds = sum(dcopy)
        if 0-ds < dmin:
            result = ds
            dmin = abs(ds)
        elif 0-ds == dmin:
            result = min(result, ds)
    return result*(-1)
 
nums = [1, 2, 3, 4, 5]
print("Original list of numbers:")
print(nums)
print("Number which when appended to the list makes the total 0:")
print(test(nums)) 
nums = [-1, -2, -3, -4, 5]
print("\nOriginal list of numbers:")
print(nums)
print("Number which when appended to the list makes the total 0:")
print(test(nums))  
nums = [10, 42, 17, 9, 1315182, 184, 102, 29, 15, 39, 755]
print("\nOriginal list of numbers:")
print(nums)
print("Number which when appended to the list makes the total 0:")
print(test(nums)) 

Sample Output:

Original list of numbers:
[1, 2, 3, 4, 5]
Number which when appended to the list makes the total 0:
-15

Original list of numbers:
[-1, -2, -3, -4, 5]
Number which when appended to the list makes the total 0:
5

Original list of numbers:
[10, 42, 17, 9, 1315182, 184, 102, 29, 15, 39, 755]
Number which when appended to the list makes the total 0:
-1316384

Flowchart:

Flowchart: Python - Find the number which when appended to the list makes the total 0.

Visualize Python code execution:

The following tool visualize what the computer is doing step-by-step as it executes the said program:


Python Code Editor :

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

Previous: Find numbers that are adjacent to a prime number in the list, sorted without duplicates.
Next: Find the dictionary key whose case is different than all other keys.

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.

Python: Tips of the Day

Executes the provided function once for each list element, starting from the list's last element:

Example:

def tips_for_each_right(itr, fn):
  for el in itr[::-1]:
    fn(el)
tips_for_each_right([3, 6, 9], print)

Output:

9
6
3

 





We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook