python比较2个不同长度和序列/重复列表中的项目应该被考虑

时间:2016-12-13 13:50:03

标签: list python-3.x

我试图比较两个不等长的列表

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

还有更好的方法吗?

感谢您的帮助!

1 个答案:

答案 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']