2017-10-21 85 views
0

后可以说我有词的列表如下所示的列表中删除的字,从显示一个接一个地

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

另外我想避免设置,因为我需要保持顺序。

回答

0
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))) 
0

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

相关问题