我有两个列表
list1=['value1', 'value2', 'value3']
list2=['value1', 'value2', 'value3', 'value4', 'value5']
我要从列表2中删除列表1的内容
结果应为:
['value4', 'value5']
答案 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']