簡體   English   中英

迭代列表列表並在這些列表中查找連續的數字

[英]Iterate list of lists and finding consecutive numbers in those lists

目前,我正在嘗試在嵌套列表中查找連續的數字。 我的目標是以下示例:

nested = [ [1,7,13], [2,5,8], [3, 6, 9] ]

輸出: (1,2,3), (7,8,9)

如果列表多於三個,它也應該起作用。 列表的數量可以變化。

(為此,背景;我正在為學校建立搜索引擎,嵌套的數字是用戶給出的查詢詞的位置。)

我用過 :

def is_coherent(x):
    return all(np.diff(x) == 1)

查看整數是否連續。 我也嘗試過itertools.izip。 但是,這不允許我更改要迭代的列表的數量。

任何幫助將不勝感激!

我想您想從內部列表的笛卡爾積中獲得所有項目都是連續的那些項目,為此,您可以嘗試如下操作:

from itertools import izip, product

def find_continuous_items(data):
    for p in product(*data):
        if all(b-a==1 for a, b in izip(p, p[1:])):
            yield p

nested = [[1,7,13], [2,5,8], [3, 6, 9]]
print list(find_continuous_items(nested))
#[(1, 2, 3), (7, 8, 9)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM