Dada una lista de números, escriba un programa en Python para comprobar si la lista contiene enteros consecutivos.
Ejemplos:
Input : [2, 3, 1, 4, 5] Output : True Input : [1, 2, 3, 5, 6] Output : False
Discutamos las pocas formas en que podemos hacer esta tarea.
Enfoque #1: usandosorted()
Este enfoque utiliza sorted()
la función de Python. Comparamos la lista ordenada con la lista del rango de enteros mínimo y máximo de la lista y la devolvemos.
# Python3 Program to Create list # with integers within given range def checkConsecutive(l): return sorted(l) == list(range(min(l), max(l)+1)) # Driver Code lst = [2, 3, 1, 4, 5] print(checkConsecutive(lst))
True
Enfoque #2: Usarnumpy.diff()
El módulo Numpy proporciona una función diff()
que calcula la n-ésima diferencia discreta a lo largo del eje dado. Encontramos la diferencia iterativa de la lista ordenada y verificamos si es igual a 1.
# Python3 Program to Create list # with integers within given range import numpy as np def checkConsecutive(l): n = len(l) - 1 return (sum(np.diff(sorted(l)) == 1) >= n) # Driver Code lst = [2, 3, 1, 4, 5] print(checkConsecutive(lst))
True
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