📜  Python – 提取 Range 连续出现的元素(1)

📅  最后修改于: 2023-12-03 15:04:12.808000             🧑  作者: Mango

Python – 提取 Range 连续出现的元素

有时候我们需要从一个列表中提取连续出现的元素,这时候就可以使用 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,并返回一个列表 rangesranges 中包含所有连续出现的元素,每个元素也是一个列表。

接下来是这个函数的解释。

首先,我们创建了一个空列表 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 中的列表操作。