Python比较两个列表然后删除重复的字符并将结果放入新列表

时间:2017-01-18 06:22:47

标签: python list

这个不应该太难,但它给我带来了麻烦:

假设我有两个清单:

list1 = ['the sky is blue', 'I am happy', 'Where is the car', 'lets eat here']
list2 = ['the','', 'Where', 'lets']

我要做的是比较列表1和2,如果list2的内容与list1中的任何内容匹配,那么这些字符将从列表成员中删除。

对于每个新成员,我希望将其添加到现在将为空的新列表中

list3 = []

列表可以保持完整,但重要的是列表3应该是以下内容:

list3 = ['sky is blue', 'I am happy', 'is the car', 'eat here']

请注意,在列表3中删除了第一个单词,因为在比较list1和list2时该单词匹配。希望这是有道理的。

在这里笑,我尝试了......

list1 =  ['the sky is blue', 'I am happy', 'Where is the car', 'lets eat here']
list2 = ['the','', 'Where', 'lets']
list3 = []

for w in list2:
if w in list1:
    addthis = list1.remove(w)
    list3.append(addthis)

谢谢

1 个答案:

答案 0 :(得分:2)

在列表解析中使用zip来实现此目的。 strip之后的剩余空格

list1 = ['the sky is blue', 'I am happy', 'Where is the car', 'lets eat here']
list2 = ['the','', 'Where', 'lets']

list3 = [x.replace(y,"").strip() for x,y in zip(list1,list2)]

print(list3)

结果:

['sky is blue', 'I am happy', 'is the car', 'eat here']