python 两个列表相减

2023-02-25 00:00:00 列表 两个 相减

假设我们有两个列表 list1 和 list2,并且想要从 list1 中减去 list2 中包含的元素,得到一个新列表。可以使用列表推导式来实现这个目标。

下面是一个示例:

list1 = [1, 2, 3, 4, 5]
list2 = [2, 4, 6]
new_list = [x for x in list1 if x not in list2]
print(new_list)

在上面的示例中,我们首先定义了两个列表 list1 和 list2,并将它们分别初始化为包含一些整数的列表。然后,我们使用列表推导式来创建一个新列表 new_list,其中包含 list1 中不在 list2 中的元素。具体来说,我们遍历 list1 中的每个元素,并检查它是否也在 list2 中。如果不在,就将它添加到 new_list 中。最后,我们将新列表 new_list 打印出来。

输出结果为:

[1, 3, 5]

注意,如果 list1 中包含多个相同的元素,而 list2 中只包含其中一部分,那么新列表中仍然会包含所有的重复元素。如果要确保新列表中的元素都是唯一的,则可以将新列表转换为集合,然后再转换回列表,以去除重复元素。

例如:

list1 = [1, 2, 3, 4, 5, 5, 5]
list2 = [2, 4, 6]
new_list = list(set([x for x in list1 if x not in list2]))
print(new_list)

在上面的示例中,我们将新列表推导式的结果先转换为集合,以去除重复元素,然后再将其转换回列表。最后,我们将新列表 new_list 打印出来。

输出结果为:

[1, 3, 5]

相关文章