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