Python|检查列表是否包含连续数字
给定一个数字列表,编写一个Python程序来检查该列表是否包含连续的整数。
例子:
Input : [2, 3, 1, 4, 5]
Output : True
Input : [1, 2, 3, 5, 6]
Output : False
让我们讨论一下我们可以完成这项任务的几种方法。方法 #1:使用sorted()
这种方法使用Python的sorted()
函数。我们将排序后的列表与列表的最小和最大整数范围的列表进行比较并返回它。
# 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
方法 #2:使用numpy.diff()
Numpy 模块提供了一个函数diff()
计算沿给定轴的第 n 个离散差。我们找到排序列表的迭代差异,并检查它是否等于 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