我试图比较两个不等长的列表
output = ['b','c']
应该比较list1,直到list1中找到list2中的最后一个元素(即' d')。 以下是所需的输出
i = 0
j = 0
output = []
while(True):
if(list1[i] == list2[j]):
i += 1
j += 1
if (j == len(list2)):
break
else:
output.append(list1[i])
i = i + 1
下面是我的代码
input
还有更好的方法吗?
感谢您的帮助!
答案 0 :(得分:3)
我想你想要itertools.takewhile
from itertools import takewhile
def taker(l1, l2):
it = iter(l1)
for j in l2:
yield from takewhile(lambda x: x!=j, it)
list(taker(list1, list2))
是['b', 'c']