所以我很难想到一种从一个列表中获取不同范围的方法。 代码如下:
data = [101, 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, 115, 116, 117, 118, 119, 121]
f_range = []
print()
的输出应类似于:
101-106, 108-112, 115-119, 121
我需要将这些按连续的升序分组。
答案 0 :(得分:1)
尝试一下:
min = sorted(data)[0]
max = 0
step = 1 # Increment between each consecutive number
for c, item in enumerate(sorted(data)):
try:
if item + step != sorted(data)[c + 1]:
max = item
print (str(min) + "-" + str(max))
min = sorted(data)[c + 1]
except IndexError:
max = item
print (str(min) + "-" + str(max))
break
希望这会有所帮助。