Python | Encuentra números que faltan en un rango de lista ordenada

Dado un rango de lista ordenada de enteros con algunos enteros faltantes en el medio, escriba un programa Python para encontrar todos los enteros faltantes.

Ejemplos:

Input : [1, 2, 4, 6, 7, 9, 10]
Output : [3, 5, 8]

Input : [5, 6, 10, 11, 13]
Output : [7, 8, 9, 12]

 
Método #1: Comprensión de listas

# Python3 program to Find missing 
# integers in list
          
def find_missing(lst):
    return [x for x in range(lst[0], lst[-1]+1) 
                               if x not in lst]
  
# Driver code
lst = [1, 2, 4, 6, 7, 9, 10]
print(find_missing(lst))
Producción:

[3, 5, 8]

 
Método #2: Comprensión de listas usando zip()

# 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))
Producción:

[3, 5, 8]

 
Método #3: Usando el conjunto

El uso del conjunto de Python es una forma eficiente y complicada de encontrar los números que faltan en la lista. Convertimos la lista a conjunto y simplemente mostramos la diferencia entre este conjunto y un conjunto que contiene números enteros que van desde min(lst) y max(lst) .

# 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]
print(find_missing(lst))
Producción:

[3, 5, 8]

 
Método #4: Usando la diferencia()

Este es un enfoque similar al anterior con la ligera diferencia de que en lugar de usar el operador ‘-‘ para encontrar la diferencia entre ambos conjuntos, podemos usar el método de diferencia() de Python.

# 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))
Producción:

[3, 5, 8]

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *