Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 比较列表。哪些元素不在列表中?_Python_List - Fatal编程技术网

Python 比较列表。哪些元素不在列表中?

Python 比较列表。哪些元素不在列表中?,python,list,Python,List,我有以下两个列表,我想获得列表2中不在列表1中的元素: list1 = ["0100","0300","0500"] list2 = ["0100","0200","0300","0400","0500"] 我的输出应该是: list3 = ["0200","0400"] 我正在寻找一种从另一个

我有以下两个列表,我想获得列表2中不在列表1中的元素:

list1 = ["0100","0300","0500"]
list2 = ["0100","0200","0300","0400","0500"]
我的输出应该是:

list3 = ["0200","0400"]

我正在寻找一种从另一个中减去一个的方法,但到目前为止,我无法得到我想要的列表3

这个解决方案对您有效吗

list3 = []
for i in range(len(list2)):
    if list2[i] not in list1:
        list3.append(list2[i])
或者,如果不关心顺序,可以将列表转换为集合:

set(list2) - set(list1)
然后,您还可以将其转换回列表:

list3 = list(set(list2) - set(list1))

我相信这里已经回答了这个问题:


set
函数将帮助您用几行代码解决问题

set1=set(["0100","0300","0500"])
set2=set(["0100","0200","0300","0400","0500"])
set3=set2-set1
print(list(set3))
set
提供了比列表更快的Python实现

list1 = ["0100","0300","0500"]
list2 = ["0100","0200","0300","0400","0500"]

list3 = list(filter(lambda e: e not in list1,list2))
print(list3)
import numpy as np

list1 = ["0100","0300","0500"]
list2 = ["0100","0200","0300","0400","0500"]

list3 = np.setdiff1d(list2,list1)

print(list3)
set1=set(["0100","0300","0500"])
set2=set(["0100","0200","0300","0400","0500"])
set3=set2-set1
print(list(set3))