Write a program to find missing numbers in a sorted list using Python
In this article, TipsMake.com will learn with you how to write a program to find missing numbers in a sorted list using Python.
Problem : Given a sorted list of integers but some are missing, write a Python program to find all the missing integers.
Example :
Input : [1, 2, 4, 6, 7, 9, 10] Output : [3, 5, 8] Input : [5, 6, 10, 11, 13] Output : [7, 8, 9, 12]
In this article, TipsMake.com will learn with you how to write a program to find missing numbers in a sorted list using Python.
Method 1: Use List Comprehension
You can work around this with Python's built-in List Comprehension. Here is the sample code for your reference:
# Python3 program to Find missing # integers in list def find_missing(lst): max = lst[0] for i in lst : if i > max : max= i min = lst [0] for i in lst : if i < min: min = i missing = max+1 list1=[] for _ in lst : max = max -1 if max not in lst : list1.append(max) return list1 # Driver code lst = [1,5,4,6,8, 2,3, 7, 9, 10] print(find_missing(lst))
The returned result is:
[3, 5, 8]
Method 2: Use List Comprehension with zip()
Still similar to method 1, but you use zip() to shorten the code. Here is sample code:
# Python3 program to Find missing # integers in list def find_missing(lst): return [i for x, y in zip(lst, lst[1:]) for i in range(x + 1, y) if y - x > 1] # Driver code lst = [1, 2, 4, 6, 7, 9, 10] print(find_missing(lst))
The returned result is:
[3, 5, 8]
Method 3: Using set
Using Python's set is an efficient and simple way to find missing numbers in a list. We will convert the list to a set and simply output the difference between this set and the set of integers min to max.
Here is the sample code for your reference:
# Python3 program to Find missing # integers in list def find_missing(lst): return sorted(set(range(lst[0], lst[-1])) - set(lst)) # Driver code lst = [1, 2, 4, 6, 7, 9, 10, 12, 13, 15] print(find_missing(lst))
The returned result is:
[3, 5, 8, 11, 14]
Method 4: Use difference()
This is a similar approach to #3. However, with a slight difference, instead of using the "-" operator to find the difference between two sets, we can use the difference( ) of Python.
Here is sample code:
# Python3 program to Find missing # integers in list def find_missing(lst): start = lst[0] end = lst[-1] return sorted(set(range(start, end + 1)).difference(lst)) # Driver code lst = [1, 2, 4, 6, 7, 9, 10] print(find_missing(lst))
The returned result is:
[3, 5, 8]
Conclude
Finding the missing number in the sorted list is a frequently asked question by employers to check the qualifications of candidates. TipsMake.com hopes that this article will help you.
You should read it
- How to set up Python to program on WSL
- Python data type: string, number, list, tuple, set and dictionary
- Write a program to combine two sorted lists in Python
- Why should you learn Python programming language?
- 5 choose the best Python IDE for you
- What is Python? Why choose Python?
- Python online editor
- Write a program to check duplicate values in Python
- For in Python loop
- More than 100 Python exercises have solutions (sample code)
- Multiple choice quiz about Python - Part 3
- Write a program to find the majority element in an array in Python
Maybe you are interested
This program will help you become invisible before the webcam lens is recording live Can ants survive if they fall from the roof of the building? Use the Sun's gravity to transmit interstellar signals 12 interesting facts about Red Planet - Mars may not be known 10 longest caves in the world Japan's new breakthrough forecast could improve weather warnings