我有两个列表,第一个包含一些在第二个列表中不存在的元素,这些元素具有更多元素。我需要删除第二个列表中不存在的元素。
在下面的示例中,我需要从第一个列表中仅删除“ 0”。 所以:
Input:
list1 = [0,1,2,3]
list2 = [1,2,3,4,5,6,7]
Output:
list1 = [1,2,3]
list2 = [1,2,3,4,5,6,7]
我尝试了这个简单的代码,但是它返回了一个空列表
list1=[0,1,2,3]
list2=[1,2,3,4,5,6,7]
for element in list1:
for element1 in list2:
if element != element1:
for element in list1:
list1.remove(element)
print(list1)
请帮忙吗?
答案 0 :(得分:1)
您可以使用集来做到这一点!
set(list1).intersection(list2) # [1,2,3]
您也可以使用列表推导,但理论上它较慢。
list1 = [0,1,2,3]
list2 = [1,2,3,4,5,6,7]
list1 = [x for x in list1 if x in list2] # [1,2,3]