for循环求交集

时间:2023-03-09 19:24:25
for循环求交集

for循环方式求交集

#!/usr/bin/env python
#coding:utf-8
#取交集
#定义两个序列对象,求alist与blist对象的交集元素
alist = [2,9,3,4,5,6,7,8]
blist = [9,2,1,10,33,2,3]

#定义一个空list对象,放最终的结果
reslut = []

#遍历alist对象
for x in alist:
  if x in blist: #如果alist对象中有元素在blist对象里则添加到reslut对象
    reslut.append(x)
print reslut

2、改成函数的方式

alist = [2,9,3,4,5,6,7,8]
blist = [9,2,1,10,33,2,3]

def intersect(seq1,seq2):
    reslut = []
    for x in alist:
        if x in blist:
            reslut.append(x)
    return reslut

if __name__ == '__main__':
    reslut = intersect(alist,blist)
    print reslut

3、使用类的方式

class Ops:
    '''定义类函数,返回两个序列的交集'''
    def intersect(self,seq1,seq2):
        reslut = []
        for i in seq1:
            if i in seq2:
                reslut.append(i)
        return reslut

if __name__ == '__main__':
    a_seq = [1,3,5,7,9]
    b_seq = [1,2,4,7,8]
    res = Ops()
    reslut = res.intersect(a_seq,b_seq)
    print reslut

当然用set集合的方法直接就可以搞定。

注意alist对象与blist对象取交集,不等同于blist对象与alist对象去交集的结果。