从一个接一个出现的列表中删除一个单词

Removing a word from a list which appears one after the other

假设我有一个单词列表,如下所示,

A=['ab','bc','cd','de','de','ef','bc']

我尝试使用如下所示的集合,

def remove_similar_words(self,sent):

    original_set = set()
    result = []
    for item in sent:
        if item not in original_set:
            original_set.add(item)
            result.append(item)
    return result

sent 是列表 A.

上述方法的结果将是

result=['ab','bc','cd','de','ef']

但是,我需要的结果是,

needed_result=['ab','bc','cd','de','ef','bc']

问题 : 我如何更改我的代码以满足生成列表的要求needed_result?

我也想避免集合,因为我需要保留顺序。

看来您只需要检查迭代器中的先前值,而不是构建完整的 original_set。

def remove_similar_words(sent):

last = ""
result = []
for item in sent:
    if item != last:
        last=item
        result.append(item)
return result

A=['ab','bc','cd','de','de','ef','bc']
print (", ".join(remove_similar_words(A)))