📅  最后修改于: 2023-12-03 15:04:12.808000             🧑  作者: Mango
有时候我们需要从一个列表中提取连续出现的元素,这时候就可以使用 Python 的 range()
函数来实现这个功能。
假设我们有这样一个列表:
my_list = [1, 2, 3, 5, 7, 8, 9, 12, 13, 14]
现在我们需要从 my_list
这个列表中提取所有连续出现的元素。也就是说,我们需要得到这样一个列表:
[1, 2, 3],
[7, 8, 9],
[12, 13, 14]
下面是这个程序的实现方法:
def get_ranges(my_list):
ranges = []
for i in range(len(my_list)):
if i == 0 or my_list[i] != my_list[i-1]+1:
ranges.append([my_list[i]])
else:
ranges[-1].append(my_list[i])
return ranges
这个函数接受一个列表 my_list
,并返回一个列表 ranges
。ranges
中包含所有连续出现的元素,每个元素也是一个列表。
接下来是这个函数的解释。
首先,我们创建了一个空列表 ranges
,用来保存结果。
ranges = []
接着,我们使用 for
循环遍历整个列表 my_list
。
for i in range(len(my_list)):
在每次循环中,我们检查当前元素是否是连续元素的一部分。如果是,我们将它加到最后一个连续元素的列表中;如果不是,我们创建一个新的连续元素的列表,并将当前元素加到其中。
if i == 0 or my_list[i] != my_list[i-1]+1:
ranges.append([my_list[i]])
else:
ranges[-1].append(my_list[i])
最后,我们返回结果列表 ranges
。
return ranges
这个函数非常简单,但它非常有用。希望这个例子可以帮助你更好地理解 Python 中的列表操作。