python列表,删除list2中list1的内容

时间:2020-06-25 09:44:40

标签: python list

我有两个列表

list1=['value1', 'value2', 'value3']
list2=['value1', 'value2', 'value3', 'value4', 'value5']

我要从列表2中删除列表1的内容

结果应为:

['value4', 'value5']

4 个答案:

答案 0 :(得分:2)

您可以通过将list1转换为set,然后通过列表理解来创建一个新列表,其中包含list2中不在list1中的项目。

list1=['value1', 'value2', 'value3']
list2=['value1', 'value2', 'value3', 'value4', 'value5']
list1_set = set(list1)
result = [i for i in list2 if i not in list1_set]
print(result)

输出

['value4', 'value5']

将list1转换为set是出于更好的性能,因为检查项目是否在set中比在list中更快。

答案 1 :(得分:1)

list2 = [elem for elem in list2 if elem not in list1]

答案 2 :(得分:0)

要打印list2中不在list1中的项目的值,可以使用以下代码:

list1=['value1', 'value2', 'value3']
list2=['value1', 'value2', 'value3', 'value4', 'value5']

print([list2 for list2 in list2 if list2 not in list1])

答案 3 :(得分:0)

list1=['value1', 'value2', 'value3']
list2=['value1', 'value2', 'value3', 'value4', 'value5']

set_list_1 = set(list1)
set_list_2 = set(list2)
print(list(set_list_2.difference(set_list_1)))
['value4', 'value5']
相关问题