在Python中,列表中的数字可以分为连续和非连续两类。连续数字是指列表中的数字按照顺序排列,每个数字与前一个数字的差值为1。非连续数字则是指列表中的数字不是按照顺序排列,或者数字之间的差值不为1。
[1, 2, 3, 4]
[1, 3, 5, 7]
或 [1, 2, 4, 5]
以下是一个Python函数,用于区分列表中的连续和非连续数字:
def classify_numbers(numbers):
if not numbers:
return [], []
numbers.sort()
continuous = []
non_continuous = []
current_sequence = [numbers[0]]
for i in range(1, len(numbers)):
if numbers[i] == numbers[i - 1] + 1:
current_sequence.append(numbers[i])
else:
if len(current_sequence) > 1:
continuous.append(current_sequence)
else:
non_continuous.extend(current_sequence)
current_sequence = [numbers[i]]
if len(current_sequence) > 1:
continuous.append(current_sequence)
else:
non_continuous.extend(current_sequence)
return continuous, non_continuous
# 示例使用
numbers = [1, 3, 4, 5, 7, 8, 10]
continuous, non_continuous = classify_numbers(numbers)
print("连续数字:", continuous)
print("非连续数字:", non_continuous)
通过这种方式,你可以有效地将列表中的数字分为连续和非连续两类,并根据具体需求进行进一步处理。
领取专属 10元无门槛券
手把手带您无忧上云