【问题标题】:Removing a word from a list which appears one after the other从一个接一个出现的列表中删除一个单词
【发布时间】:2017-10-21 06:10:07
【问题描述】:

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

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 的要求?

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

【问题讨论】:

    标签: list set python-3.6


    【解决方案1】:
    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)))
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-18
        • 2021-02-03
        • 2011-05-11
        • 1970-01-01
        相关资源
        最近更新 更多