w3resource

Python: Find the indices of two numbers that sum to 0 in a given list

Python Programming Puzzles: Exercise-29 with Solution

Write a Python program to find the indices of two numbers that sum to 0 in a given list of numbers.

Input:
[1, -4, 6, 7, 4]
Output:
[4, 1]

Input:
[1232, -20352, 12547, 12440, 741, 341, 525, 20352, 91, 20]
Output:
[1, 7]

Pictorial Presentation:

Python: Find the indices of two numbers that sum to 0 in a given list.

Sample Solution-1:

Python Code:

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

def test(nums):
    s = set(nums)
    for i in s:
        if -i in s:
            return [nums.index(i), nums.index(-i)]

nums = [1, -4, 6, 7, 4]
print("Original List:")
print(nums) 
print("Indices of two numbers that sum to 0 in the said list:")
print(test(nums))
nums=[1232, -20352, 12547, 12440, 741, 341, 525, 20352, 91, 20]
print("\nOriginal List:")
print(nums) 
print("Indices of two numbers that sum to 0 in the said list:")
print(test(nums)) 

Sample Output:

Original List:
[1, -4, 6, 7, 4]
Indices of two numbers that sum to 0 in the said list:
[4, 1]

Original List:
[1232, -20352, 12547, 12440, 741, 341, 525, 20352, 91, 20]
Indices of two numbers that sum to 0 in the said list:
[1, 7]

Flowchart:

Flowchart: Python - Find the indices of two numbers that sum to 0 in a given list.

Sample Solution-2:

Python Code:

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

def test(nums):
    result = []
    # For each index in the list:
    for ind in range(len(nums)):
        # For each index in the list:
        for i in range(len(nums)):
            # If the number at the current index and the other index sum to zero
            if ind != i and nums[ind] + nums[i] == 0:
                result.append(ind)
                result.append(i)
                # Found the indices; no need to go through the whole list
                return result

nums = [1, -4, 6, 7, 4]
print("Original List:")
print(nums) 
print("Indices of two numbers that sum to 0 in the said list:")
print(test(nums))
nums=[1232, -20352, 12547, 12440, 741, 341, 525, 20352, 91, 20]
print("\nOriginal List:")
print(nums) 
print("Indices of two numbers that sum to 0 in the said list:")
print(test(nums)) 

Sample Output:

Original List:
[1, -4, 6, 7, 4]
Indices of two numbers that sum to 0 in the said list:
[1, 4]

Original List:
[1232, -20352, 12547, 12440, 741, 341, 525, 20352, 91, 20]
Indices of two numbers that sum to 0 in the said list:
[1, 7]

Flowchart:

Flowchart: Python - Find the indices of two numbers that sum to 0 in a given list.

Python Code Editor :

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

Previous: Select a string from a given list of strings with the most unique characters.
Next: Find the list that has fewer total characters (including repetitions).

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.