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]
Visual Presentation:
Sample Solution:
Python Code:
# License: https://bit.ly/3oLErEI
# Define a function named 'test' that takes a list of numbers as input
def test(nums):
# Sort the unique elements in the list in ascending order
s = sorted(set(nums))
# Use list comprehension to find pairs of adjacent elements
# Then, find the pair with the smallest difference
return min([[a, b] for a, b in zip(s, s[1:])], key=lambda x: x[1] - x[0])
# Example 1
nums1 = [1.3, 5.24, 0.89, 21.0, 5.27, 1.3]
print("List of numbers:", nums1)
print("Two closest distinct numbers in the said list of numbers:")
print(test(nums1))
# Example 2
nums2 = [12.02, 20.3, 15.0, 19.0, 11.0, 14.99, 17.0, 17.0, 14.4, 16.8]
print("\nList of numbers:", nums2)
print("Two closest distinct numbers in the said list of numbers:")
print(test(nums2))
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:
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.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/python-exercises/puzzles/python-programming-puzzles-78.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics