我有两个列表:
listOne = ['John', 'James', Daniel', 'Peter', 'Luke']
listTwo = ['Daniel', 'Peter', Kate', 'Jenny']
我想比较这两个列表并返回非匹配项,如果需要,将其保存到另一个列表,因此输出应为:
Non-Matches: 'Kate', 'Jenny'
我该如何实现?我曾考虑过将列表更改为集合,但运气不佳
答案 0 :(得分:1)
您可以使用set,看看这个功能:
def list_diff(list1, list2):
return (list(list(set(list1)-set(list2)) + list(set(list2)-set(list1))))
diff_values = list_diff(listOne, listTwo) # call to this function
python set:https://docs.python.org/2/library/sets.html
答案 1 :(得分:0)
此处:
list_one = ['John', 'James', Daniel', 'Peter', 'Luke']
list_two = ['Daniel', 'Peter', Kate', 'Jenny']
list_non_matches = [i for i in list_two if i not in list_one]
print(list_non_matches
答案 2 :(得分:0)
您可以使用set
来完成
listOne = set(['John', 'James', 'Daniel', 'Peter', 'Luke'])
listTwo = set(['Daniel', 'Peter', 'Kate', 'Jenny'])
print(list(listTwo - listOne))
输出
['Kate', 'Jenny']