【精选】python中比较两个list是否有相同的元素及相同元素的个数 您所在的位置:网站首页 a和b两个数的比是4:5 【精选】python中比较两个list是否有相同的元素及相同元素的个数

【精选】python中比较两个list是否有相同的元素及相同元素的个数

2023-10-30 07:22| 来源: 网络整理| 查看: 265

文章目录 参考网址判断两个list是否有重复元素方法一,用遍历方法二,用set取交集 判断两个列表中不同的值在list1中而不在list2中的元素在list2中而不在list1中的元素

参考网址

本文参考自以下网址,感谢原作者,可直接查看他们的原创内容。我新发一个帖子只是为了整合起来当作收藏 python中比较两个列表是否有重复的元素,以及重复元素个数的求取 python 中两个list是否有相同元素的办法 python中如何比较两个列表_python 判断两个列表中相同和不同的元素

判断两个list是否有重复元素 方法一,用遍历

例如:

a = [1,0,2] b = [0,0,0] x = [k for k in a if k in b]

运行,得到结果为[0]

a = [1,0,2] b = [0,0,0] x = [k for k in b if k in a]

这个代码 的结果将是[0,0,0]

这两个代码的区别主要是遍历的list不同。

第一个例子中,for k in a,遍历的是a这个list中有没有和b相同的元素,显然只有一个0,所以返回结果[0]第二个例子中,for k in b,遍历的是b这个list中有没有和a相同的元素,显然三个0都是相同的,所以返回结果[0,0,0]

不过注意实际上[k for k in b if k in a]这个代码的底层功能就是生成一个允许有重复元素的list,所以只能实现找到相同元素的功能,不能用来获得a与b中①重复的元素都有哪些和②重复元素的个数,因为a、b中重复的元素0,在b中不止一个,所以a和b的顺序交换就会得到不同的结果。

可以用以下函数进一步找到a与b重复元素的个数

x = set(x)

set是无重复的,所以这个函数可以将x变成无重复的数列,进而获得重复元素个数

方法二,用set取交集

比如:

list_a = [1,2,3,4] list_b = [3,4,5,6,7]

用函数

set_c = set(list_a) & set(list_b) list_c = list(set_c)

可以得到:

list_c = [3,4]

不过同样的,如上一小节所说,set里的元素是无重复的,所以这里取完交集以后得到的队列里的元素也都是无重复的

判断两个列表中不同的值

进一步的,我们利用好x = [k for k in b if k in a]这样的语句,可以判断两个列表中不同的值 先举两个示例list:

list1 = ['张三', '李四', '王五', '老二'] list2 = ['张三', '李四', '老二', '王七']

两个list都存在的就如上一章一样用这行代码:

a = [x for x in list1 if x in list2]

寻找两个list中的不同元素就用这两行代码: (如果学过数据库,相信大家都能理解。a是两个list中的交集,list1+list2是两个list中的并集,并集减交集,显然就是两个list中的不同的元素)

a = [x for x in list1 if x in list2] b = [y for y in (list1 + list2) if y not in a] 在list1中而不在list2中的元素

进一步的,还可以写出在list1中而不在list2中的元素

c = [x for x in list1 if x not in list2] 在list2中而不在list1中的元素 d = [y for y in list2 if y not in list1]

运行结果: 运行结果



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有