如何在python3中删除列表中的重复元素?

根小

环境:python 3.6.4

我有两个列表,
list1是嵌套的单词列表,就像

[['this', 'is', 'a', 'pen', 'that', 'is', 'a', 'desk'],
 ['this', 'is', 'an', 'apple']]

list2是要从list1中删除的单词列表,例如

['a', 'an']

我想获得新的清单,例如

[['this', 'is', 'pen', 'that', 'is', 'desk'],
 ['this', 'is', 'apple']]

并且不会更改list1。

我在下面的代码中编写了代码,但是我的代码破坏了list1,我的代码哪里错了?

def remove_duplicate_element_in_nested_list(li1, li2):
    """
    :param li1: <list> nested_sentences
    :param li2: <list> words_to_remove
    :return: <list>
    """
    ret = []
    for el1 in li1:
        ret.append(el1)

    for i in range(len(ret)):
        for el2 in li2:
            try:
                # list.remove() remove only one element. so loop this.
                for el in ret[i]:
                    ret[i].remove(el2)
            except ValueError:
                None

    return ret

words = [['this', 'is', 'a', 'pen', 'this', 'is', 'a', 'desk'], ['this', 'is', 'an', 'apple']]
stop_words = ['a', 'an']

print(words)
# shows [['this', 'is', 'a', 'pen', 'that', 'is', 'a', 'desk'], ['this', 'is', 'an', 'apple']]
new_words = remove_duplicate_element_in_nested_list(words, stop_words)
print(words)
# shows [['this', 'is', 'pen', 'that', 'is', 'desk'], ['this', 'is', 'apple']]
乌伊瓦尔·阿罗拉

ret.append(el1)不会复制内部列表,而是将引用复制到内部列表。

尝试使用ret.append(el1[:])哪个使用slice运算符来创建副本。创建清单副本的其他方法如下所示:如何克隆或复制清单?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:计算列表中的重复元素

如何删除向量中的重复元素,类似于Python中的“设置”

如何删除向量中的重复元素,类似于Python中的“设置”

算法-如何有效删除列表中的重复元素?

替换Python列表中的重复元素?

如何使用列表推导删除列表中的相邻重复元素?

如何在python列表中仅打印非重复元素?

如何仅打印python列表中的重复元素

列表中的Python无限重复元素

如何删除此列表中的重复元素?

在C#中,如何检查列表中的重复元素,然后打印重复元素的名称?

删除或更改列表中特定的重复元素(并非所有重复元素)

如何使用Dart / Flutter中的列表从列表中删除重复元素?

如何在Python中删除列表中的重复元素

删除排序列表中的重复元素

如何在Python中的数组中重复元素?

如何在Java中删除单链表中的重复元素?

Python:删除列表和子列表中的重复元素;并删除完整的子列表(如果重复)

在python中从列表中分组和删除重复元素

如何删除 XML 文件中的重复元素

如何从 R 中的“setequally”列表中删除重复元素?

如何返回包含子列表的列表中的重复元素?

如何从 Swift 5 中的数组中删除重复元素?

Ocaml:如何从列表中删除所有重复元素?

Python\\如何找出3个文件中的重复元素

python从列表中删除重复元素

python程序从嵌套列表中删除重复元素

使用pop方法删除列表中的重复元素

如何根据python列表中重复元素的索引创建新的python列表