python 判断两个列表中相同和不同的元素
背景:
在做接口自动化时,通常会判断接口返回中的数据信息,与数据库中返回的数据信息是否一致,比如:将接口返回信息的用户姓名存放到一个列表中,将数据库返回的用户姓名存放到另一个列表中,这时需要判断两个列表是否一致,如果不一致,将不同的元素信息分别回写到excel文件中,可以一目了然的看出哪些信息返回的不正确。
下列代码中直接存放列表信息,比较如下:
1 #接口返回值 2 list1 = ['张三', '李四', '王五', '老二'] 3 #数据库返回值 4 list2 = ['张三', '李四', '老二', '王七'] 5 6 a = [x for x in list1 if x in list2] #两个列表中都存在 7 b = [y for y in (list1 + list2) if y not in a] #两个列表中的不同元素 8 9 print('a的值为:',a) 10 print('b的值为:',b) 11 12 c = [x for x in list1 if x not in list2] #在list1列表中而不在list2列表中 13 d = [y for y in list2 if y not in list1] #在list2列表中而不在list1列表中 14 print('c的值为:',c) 15 print('d的值为:',d)
运行结果为:
a的值为: ['张三', '李四', '老二']
b的值为: ['王五', '王七']
c的值为: ['王五']
d的值为: ['王七']