Python 如何从一个原始列表创建具有交集的多个列表?

Python 如何从一个原始列表创建具有交集的多个列表?,python,list,Python,List,例如,如果我有列表: list_a = [5, 2, 30, 6, 17] 我想获得的列表与len(列表b)相关,例如: list_b = [40, 90] 因此,我需要创建的列表是: [5, 2] [2, 30] [30, 6] [6, 17] 如何切片或使用循环来执行此操作?这里有一个使用itertools.islice的解决方案。这减少了构建列表的需要,否则这些列表可能会被用来为zip函数提供信息 from itertools import islice a = [5, 2, 30

例如,如果我有列表:

list_a = [5, 2, 30, 6, 17]
我想获得的列表与len(列表b)相关,例如:

list_b = [40, 90]
因此,我需要创建的列表是:

[5, 2]
[2, 30]
[30, 6]
[6, 17]

如何切片或使用循环来执行此操作?

这里有一个使用
itertools.islice
的解决方案。这减少了构建列表的需要,否则这些列表可能会被用来为
zip
函数提供信息

from itertools import islice

a = [5, 2, 30, 6, 17]
b = [40, 90, 20]

n = len(b)

slices = (islice(a, i, None) for i in range(1, n))
res = list(zip(*(a, *slices)))

# [(5, 2, 30), (2, 30, 6), (30, 6, 17)]

如果len(list_b)==3怎么办?结果中两个相邻列表的交集len是什么?@DeepSpace list_a=[1,2,3,4,5]len(list_b)==3,result=[1,2,3],[3,4,5]或[1,2,3],[2,3,4],[3,4,5]?@Keloo结果应该==[1,2,3,4],[3,4,5]@crtbk我投票赞成重新打开,但在此之前,您可以使用
res=[list_a[I:I+size]来处理列表中的大小范围(I+lenu)]1)
假设
size=len(列表b)