从一个接一个出现的列表中删除一个单词
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)))
假设我有一个单词列表,如下所示,
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)))