假设我的程序中有一个用户输入文本的输入。我将此文本保存为长字符串,然后将其转换为包含split() - 函数中所有单词的列表。
我还有一个列表,其中包含多个单词作为元素。如果此列表中的单词存在于第一个列表中,则应在第一个列表中删除单词。我该如何编码呢?
我使用.remove() - 函数,但是如果单词在不同的地方出现两次,则只删除第一个...
答案 0 :(得分:2)
您可以使用list comprehention来过滤掉单词,就像这样
list1, rep = "Welcome to Stack Overflow, to learn".split(), "to"
list1 = [word for word in list1 if word != rep]
print list1
或者你可以使用filter
功能,就像这样
list1 = filter(lambda word: word != rep, list1)
如果你想删除所有不需要的单词,你可以这样做
list1, words = "Welcome to Stack Overflow, to learn".split(), {"to", "Stack"}
list1 = [word for word in list1 if word not in words]
答案 1 :(得分:0)
l = ["A", "super", "cool", "list", "of", "words"]
words = ["list", "words"]
如果要保留相同的列表对象:
l[:] = (w for w in l if w not in words)
否则你可以使用简单的列表理解:
l = [w for w in l if w not in words]
或使用过滤器:
l = list(filter(lambda w: w not in words, l))
或者:
l[:] = filter(lambda w: w not in words, l)