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

11 浏览
0 Comments

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

这个问题已经有答案了:

获取两个具有唯一条目的列表之间的差异

我有两个列表

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

我想从list2中删除list1的内容

结果应该是:

['value4', 'value5']

admin 更改状态以发布 2023年5月23日
0
0 Comments

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

的中文翻译是:使用列表解析式,将list2中那些在list1中出现过的元素删除。

0
0 Comments

你可以通过将list1转换为set,然后通过列表推导式创建一个新的列表,其中包含不在list1中的list2项。

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中更快。

0