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.

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.