与另一个列表比较后保存列表中的后续项目

我有两个列表——其中一个是字符串列表,另一个是嵌套的字符串列表。我想在两个列表之间的交点之后保存字符串列表中的下 5 个项目。


例如,这是我有的两个列表:


list1 = [['this', 'is', 'the', 'common', 'part'], ['this', 'is', 'another', 'commonality']]

list2 = ['this', 'is', 'the', 'common', 'part', 'and', 'i', 'am', 'saving', 'this', 'blah', 'blah', 'this', 'is', 'another', 'commonality', 'i', 'am', 'also', 'saving', 'this']

期望的输出是:


result = [['and', 'i', 'am', 'saving', 'this'], ['i', 'am', 'also', 'saving', 'this']]

我的代码有许多不友好的嵌套条件——如果有人有一个干净的方法来实现目标,我将不胜感激!


SMILET
浏览 70回答 1
1回答

大话西游666

你可以这样尝试:amount_of_subsequent_items = 5result = []for sublist in list1:    for i in range(len(list2)-1):        if sublist == list2[i:i+len(sublist)]:            result.append(list2[i+len(sublist):i+len(sublist)+amount_of_subsequent_items])这通过在 中的任何位置list1查找sublist(of ) 的出现来迭代您的。如果发现某个事件,则包含 的下一个后续项目的列表将存储在 中。list1list2amount_of_subsequent_itemslist2result
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python