比较两个字符串列表并在Python中打印不匹配项?

时间:2020-09-30 11:35:44

标签: python list compare

我有两个列表:

listOne = ['John', 'James', Daniel', 'Peter', 'Luke']
listTwo = ['Daniel', 'Peter', Kate', 'Jenny']

我想比较这两个列表并返回非匹配项,如果需要,将其保存到另一个列表,因此输出应为:

Non-Matches: 'Kate', 'Jenny'

我该如何实现?我曾考虑过将列表更改为集合,但运气不佳

3 个答案:

答案 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']