Python 如何编写函数来检查集合是否连续?

Python 如何编写函数来检查集合是否连续?,python,set,Python,Set,给定一组整数,如果该集合是连续的(它只包含顺序整数),则返回True 您可以使用min和max功能 set1 = {1, 2, 3, 5} set2 = {9, 8, 7, 10, 11, 12} x1 = len(set1) == max(set1)-min(set1)+1 # False x2 = len(set2) == max(set2)-min(set2)+1 # True numpy有一个计算数组中值差的函数。对集合进行排序,使最接近的数字是最接近的,取差值,然后查看它们是否

给定一组整数,如果该集合是连续的(它只包含顺序整数),则返回True


您可以使用
min
max
功能

set1 = {1, 2, 3, 5}
set2 = {9, 8, 7, 10, 11, 12}

x1 = len(set1) == max(set1)-min(set1)+1  # False
x2 = len(set2) == max(set2)-min(set2)+1  # True

numpy
有一个计算数组中值差的函数。对集合进行排序,使最接近的数字是最接近的,取差值,然后查看它们是否都是1

>>> import numpy as np
>>> 
>>> def continuous_set(s):
...     arr = np.array(sorted(s))
...     return (np.diff(arr)==1).all()
... 
>>> set1 = {1, 2, 3, 5}
>>> set2 = {9, 8, 7, 10, 11, 12}
>>> 
>>> print (continuous_set(set1)) #returns False
False
>>> print (continuous_set(set2)) #returns True
True

到目前为止你尝试了什么?这是否回答了你的问题?你能想出一个数学规则,告诉你如果集合有这个属性,它应该有多少个元素,用最小值和最大值来表示吗?我很高兴听到你想写一个函数,但这是一个问答网站。哇。这真的很有效。
>>> import numpy as np
>>> 
>>> def continuous_set(s):
...     arr = np.array(sorted(s))
...     return (np.diff(arr)==1).all()
... 
>>> set1 = {1, 2, 3, 5}
>>> set2 = {9, 8, 7, 10, 11, 12}
>>> 
>>> print (continuous_set(set1)) #returns False
False
>>> print (continuous_set(set2)) #returns True
True