导航:首页 > 编程语言 > python数组取交集

python数组取交集

发布时间:2022-08-25 13:38:55

A. python 如何找出两个list中的相同元素

这个问题有多种解法,最常见的是brute-force 也叫暴力枚举法,也就是把两个list当中的每个元素都取出来进行两两比较,直到找到相同元素。设第一个数组的长度为n,第二个数组的长度为m,则时间复杂度为O(n*m),空间复杂度为O(1)
但是个问题常见的解决方法是哈希表。在Python当中有Dictionary这种数据类型,其实是一个哈希表。运用这种数据类型,可以迅速检索到想要的元素。但这种方法需要存储一组元素,所以时间复杂度为O(n),空间复杂度为O(m)。
以下是程序:
def find_same_element(l1, l2):
dist = {}
for i in l1:
dist[i] = 1
for i in l2:
if dist.get(i) > None:
return i
return None

以下是检验
l1 = [1, 2, '34', 34, 5]
l2 = [4, 7, 8]
print find_same_element(l1, l2)
应当输出None
l1 = [1, 2, '34', 34, 5]
l2 = [4, 7, 8,5]
print find_same_element(l1, l2)
应当输出5

这个函数只能找到一个共同元素,如果两个list有多个相同元素则只能输出中间的一个。

这个问题常见于面试题,属于最简单的面试题目。需要给面试官说明的是,
第一,哈希表可以快速检索元素,
第二,python有独特的数据类型,
第三,多个共同元素的情况需要面试官告知如何处理,
第四,注意没有共同元素的时候的输出(程序中为None但面试官希望你能提出这个问题)

B. Python中list,tuple,dict,set的区别和用法

list 相当于数组
tuple 叫元祖,相当于元素不可变数组,只能读
dict 名叫字典,我是听着怪怪的,这东西有点像 json ,又有点像 javascript 中的对象,又有点像 php 中的关联数组
set 是集合,就是元素不可重复,不分顺序。

用法(非全面总结,仅供参考):
一般情况下用 list 足够了,而数据库中读出来的数据集一般是 tuple 形式的,需要明确指定变量名和值对应时,可考虑用 dict ,dict 中的元素是无序的,你一定要通过名称来取。
list1 和 list2 有共同元素,想取交集怎么办呢?这时就要用到 set 了,
交集:set(list1) & set(list2)
并集:set(list1) | set(list2)
差集:set(list1) - set(list2)
集合结果想转回 list 的话用 list() 函数对集合转换,如 list(set(list1) & set(list2))
多学习,多练习,总会进步的。
世人无难事,只怕有心人。
专心投入去攻一件事,不成功也难,就算不成功,也学习到大量知识并积累了大量经验,都是宝贵的。

C. 关于python代码问题 求两个txt文件里数字的交集 数字之间用制表符隔开

#-*-coding:utf-8-*-

defreadfile(datafile):
f=open(datafile,'r')
returnf.read()
f.close()

data_a=readfile('a.txt').split(' ')
data_b=readfile('b.txt').split(' ')
res=[]

foriindata_a:
ifiindata_b:
res.append(i)

printres

这段代码可以实现你说的需求了,试试吧

D. 关于python集合运算

差集 a-b 从集合a中去除所有在集合b中出现的元素集合
并集 a|b 集合a,b中所有不重复的元素集合
交集 a&b 集合a,b中均出现的元素集合
如 a={1,2,3,4} b={2,4,6,8} a集合中减去b中出现的2,4 a-b为{1,3}
a|b 为 {1,2,3,4,6,8} a&b为 a ,b中均出现的{2,4}

E. 关于python数列的交集

混份儿 题主机智

F. python array 两个数组,求他们里面元素的交集,并把这些交集的值求和

[i for i in a if i in b]

求和直接sum

G. python基础教程-集合的常用操作

关于集合这东西,个人感觉在工作中项目工程里,使用到的地方不太大,几乎没有,但是作为PYthon的基础知识之一,我们还是需要完善的学习他,之前写过一篇“python基础教程-集合的介绍和使用方法 ”我们大概的介绍了一下集合的使用,本经验作为一个集合的扩展给大家介绍一下集合的常用操作。
0python基础教程-集合的介绍和使用方法
集合的与操作
我们可以看到集合输出的效果会有一个set表示。
aaa = [1,2,3]bbb = [3,4,5,6]a_a = set(aaa)b_b = set(bbb)
集合中并集的表示:
k = a_a | b_b
printk
使用一个| 线表示 ,求出2个数的并集。
=========另外一种不同的表达方式================
vip = a_a.union(b_b) #并集print vip
集合中交集的表示 使用 ^ 表示求交集:例如:
k = a_a ^ b_b #交集合
==============
print (a_a.intersection(b_b)) # 求交!!!!
集合中求出不同项目的结果
print (a_a.difference(b_b))
需要单独说明的是求的是自己的和他人的不同,不是两者一起的不同,具体看例子输出效果:
集合中我们可以直接更新一个集合的结果在内存中:
a_a.difference_update(b_b) #求出结果并更新print a_a

H. python如何判断一个数组里面的元素是否有相同的

可以对第二个list的元素进行遍历,检查是否出现在第二个list当中,如果使用表理解,可以使用一行代码完成任务。
list1 = [1,2,3,4,5]
list2 = [4,5,6,7,8]
print [l for l in list1 if l in list2]
# [4,5]

如果每一个列表中均没有重复的元素,那么还有另外一种更好的办法。首先把两个list转换成set,然后对两个set取交集,即可得到两个list的重复元素。

set1 = set(list1)
set2 = set(list2)
print set1 & set 2
# {4,5}

I. python中如何去两个文件的并集

有时候,为了需求,需要统计两个 list 之间的交集,并集,差集。查询了一些资料,现在总结在下面:
1. 获取两个list 的交集

#方法一:

a=[2,3,4,5]

b=[2,5,8]

tmp = [val for val in a if val in b]

print tmp

#[2, 5]

#方法二

print list(set(a).intersection(set(b)))

2. 获取两个list 的并集

print list(set(a).union(set(b)))

3. 获取两个 list 的差集

print list(set(b).difference(set(a))) # b中有而a中没有的

阅读全文

与python数组取交集相关的资料

热点内容
愿望清单app哪个好 浏览:457
安卓外放声音怎么解决 浏览:194
脉脉app干什么用的 浏览:357
拽姐是哪个app 浏览:858
云服务器删除了还有吗 浏览:232
macbook可以用单片机嘛 浏览:307
南阳php招聘 浏览:814
去哪里找按摩师很漂亮的app 浏览:818
86x99用简便算法计算 浏览:830
php截图flash 浏览:274
卸载联想app哪个好 浏览:721
php文字转图片 浏览:332
豆客后台怎么加密码 浏览:576
jpg转换pdf破解版 浏览:980
php基础书籍推荐 浏览:779
服务器与外网不通如何验证 浏览:353
电子版是不是就是文件夹 浏览:52
游戏属性文件加密 浏览:464
如何让安卓手机桌面图标下移 浏览:530
ubuntuphp5环境搭建 浏览:101