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 c] #两个列表中的不同元素
 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的值为: [‘王七‘]

原文地址:https://www.cnblogs.com/benben-wu/p/10404547.html

时间: 2024-08-27 12:42:43

python 判断两个列表中相同和不同的元素的相关文章

Python算法题----在列表中找到和为s的两个数字

列表data的值为[1, 3, 4, 5, 8, 9, 11],找出这个列表中和为13的两个数字的所有组合.这个好找,上过幼儿园大班的,估计都能找出来.4+9=13, 5+8=13.如何用python写一个函数来实现呢. 解法一: 超级大循环 最容易想到的就是遍历啊.嵌套循环,外层循环遍历全部列表,内层循环遍历当前元素位置之后的所有元素.内层循环中将两个数字相加,等于13就break.妥妥找到. def equalSum01(data=None, twosum=13):     result =

【python】实例-python实现两个字符串中最大的公共子串

由于python中的for循环不像C++这么灵活,因此该用枚举法实现该算法: C="abcdefhe" D="cdefghe" m=0 n=len(C) E=[] b=0 while(m<n): i=n-m while(i>=0): E.append(C[m:m+i]) i-=1 m+=1 for x in E: a=0 if x in D: a=len(x) c=E.index(x) if a > b:#保存符合要求的最长字符串长度和地址 b=a

Python面试题 —— 计算列表中出现最多次的字符

给你一个其中包含不同的英文字母和标点符号的文本,你要找到其中出现最多的字母,返回的字母必须是小写形式, 当检查最想要的字母时,不区分大小写,所以在你的搜索中 "A" == "a". 请确保你不计算标点符号,数字和空格,只计算字母. 如果你找到 两个或两个以上的具有相同的频率的字母, 返回那个先出现在字母表中的字母. 例如 -- “one”包含“o”,“n”,“e”每个字母一次,因此我们选择“e”. 输入: 用于分析的文本 (str, unicode). 输出: 最常

python如何二删除二维或者三维数组/列表中某维的空元素

如题,个人在使用python进行数据预处理过程中出现的问题,抽象成删除三维列表中某维为空的问题. 一.首先来看一下三维数组/列表的结构 仔细看下图就会很清楚了: 轴0即是去除第一个外括号后第一层(我把它称做第一维)有四大块: 对轴1则是对每一块来说,去掉大块的括号后的四小横条(我把它称作第二维): 对轴2则是对每一条来说,去掉小条的括号后的每一个数(从外往里数第三层括号,我就叫做第三维) 二.代码 1.删除二维数组中为空的元素则比较简单: oldlist=[[1, 1, 1, 1, 1], [1

python基础之取列表中最大值的索引值

''' 取列表中最大值的索引值 www.pythontutor.com ''' list_group = [5,90,59,132,54] max_index = 0 list_index = 0 for num in list_group: if num > list_group[max_index]: max_index = list_index list_index += 1 print(max_index) 原文地址:https://blog.51cto.com/9237101/2440

返回(统计)一个列表中出现次数最多的元素

首先定义一个函数 函数内逐行依次解释为: #定义一个函数def max1(lt): dict1 = {} #建立一个空字典 s = set(lt) #列表去重 for i in s: #遍历集合(也可以遍历列表,上面一行改成s = list(set(lt))即可) ct = lt.count(i) #检测i元素在lt列表中的次数(count函数) dict1[i] = ct #将i元素作为字典键+i元素的次数值作为值存到字典中 '''下面这一行代码:用max(dict1,key=dict1.ge

JS取出两个数组中的不同或相同元素

1.取出两个数组的不同元素 var arr1 = [0,1,2,3,4,5]; var arr2 = [0,4,6,1,3,9]; function getArrDifference(arr1, arr2) { return arr1.concat(arr2).filter(function(v, i, arr) { return arr.indexOf(v) === arr.lastIndexOf(v); }); } console.log(getArrDifference(arr1,arr2

判断两个数组中是否有重复项

两个数组判断是否有重复项 $.each(arr1,function(i,value){ val = value; num1 = i;//用来标记当前arr1数组中的重复项 $.each(arr2,function(i,value){ if(val == value){ alert(value); } }); });

python实现获取文件列表中每个文件出现频率最高的词汇

功能描述: 获取某个路径下的所有文件,提取出每个文件中出现频率最高的前300个字.保存在数据库当中. 前提,你需要配置好nltk #!/usr/bin/python #coding=utf-8 ''' function : This script will create a database named mydb then abstract keywords of files of privacy police. author : Chicho date : 2014/7/28 running