这个不应该太难,但它给我带来了麻烦:
假设我有两个清单:
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)
谢谢
答案 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']