w3resource

Python: Find the two closest distinct numbers in a given a list of numbers

Python Programming Puzzles: Exercise-78 with Solution

Write a Python program to find the two closest distinct numbers in a given list of numbers.

Input: 
[1.3, 5.24, 0.89, 21.0, 5.27, 1.3]
Output:
[5.24, 5.27]

Input: 
[12.02, 20.3, 15.0, 19.0, 11.0, 14.99, 17.0, 17.0, 14.4, 16.8]
Output:
[14.99, 15.0]

Pictorial Presentation:

Python: Find the two closest distinct numbers in a given a list of numbers.

Sample Solution:

Python Code:

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

def test(nums):
    s = sorted(set(nums))
    return min([[a, b] for a, b in zip(s, s[1:])], key=lambda x: x[1] - x[0])
   
nums = [1.3, 5.24, 0.89, 21.0, 5.27, 1.3]
print("List of numbers:",nums)
print("Two closest distinct numbers in the said list of numbers:")
print(test(nums))
nums = [12.02, 20.3, 15.0, 19.0, 11.0, 14.99, 17.0, 17.0, 14.4, 16.8] 
print("\nList of numbers:",nums)
print("Two closest distinct numbers in the said list of numbers:")
print(test(nums))

Sample Output:

List of numbers: [1.3, 5.24, 0.89, 21.0, 5.27, 1.3]
Two closest distinct numbers in the said list of numbers:
[5.24, 5.27]

List of numbers: [12.02, 20.3, 15.0, 19.0, 11.0, 14.99, 17.0, 17.0, 14.4, 16.8]
Two closest distinct numbers in the said list of numbers:
[14.99, 15.0]

Flowchart:

Flowchart: Python - Find the two closest distinct numbers in a given a list of numbers.

Python Code Editor :

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

Previous: Convert GPAs to letter grades.
Next: Find the largest negative and smallest positive numbers.

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.