Skip to main content
 首页 » 编程设计

python获取列表中数字开始和结束位置的索引

2025年05月04日13zhoujg

我有一个查询,它是一个数字列表。我想获取出现数字 1 的索引范围。该范围从 1 出现时开始,到它未出现的索引处结束。我举了一个例子来说明这一点。

query= [0,0,0,0,0,1,1,1,0,1,0,0,1,1,0] 
 
answer = [[5,8],[9,10],[12,14]] 

注意:我不是在 Python 的列表中寻找某个值的第一个和最后一个索引。我正在寻找它们开始和结束的所有地方。

更新:从下面的一些建议答案看来,Itertools 对这些东西来说非常方便。

请您参考如下方法:

您可以使用 itertools.dropwhile 来执行此操作。

>>> query = [0,0,0,0,0,1,1,1,0,1,0,0,1,1,0] 
>>> n = 1 
>>> 
>>> from itertools import dropwhile 
>>> itr = enumerate(query) 
>>> [[i, next(dropwhile(lambda t: t[1]==n, itr), [len(query)])[0]] for i,x in itr if x==n] 
[[5, 8], [9, 10], [12, 14]]