精华内容
下载资源
问答
  • python 求两个集合交集

    千次阅读 2018-11-29 14:24:37
    b1=[1,2,3] b2=[2,3,4] b3=[var for var in b1 if var in b2]   简洁吧。 差集 b1=[1,2,3] b2=[2,3,4] b3=[var for var in b1 if var not in b2]

    b1=[1,2,3]
    b2=[2,3,4]
    b3=[var for var in b1 if var in b2]

     

    简洁吧。

    差集
    b1=[1,2,3]
    b2=[2,3,4]
    b3=[var for var in b1 if var not in b2]

    展开全文
  • #s1和s2是两个set集合交并差集 s1={1,2,3,4,5,6,7} s2={3,4,5,6,7,8,9} print(s1&s2)#交集 {3, 4, 5, 6, 7} print(s1|s2)#并集 {1, 2, 3, 4, 5, 6, 7, 8, 9} print(s1^s2)#差集 {1, 2, 8, 9} ...
    #s1和s2是两个set集合,求交并差集
    s1={1,2,3,4,5,6,7}
    s2={3,4,5,6,7,8,9}
    
    print(s1&s2)#交集     {3, 4, 5, 6, 7}
    print(s1|s2)#并集     {1, 2, 3, 4, 5, 6, 7, 8, 9}
    print(s1^s2)#差集     {1, 2, 8, 9}
    
    展开全文
  • python求集合交集、并集

    千次阅读 2018-09-06 20:38:15
    文章出处 联合( | ) 联合(union)操作和集合的 OR(又称可兼析取(inclusive disjunction))其实是等价的,两个集合的联合是一个新集合,该集合中的每个元素都至少是其中一个集合...两个集合交集是一个新集合,该集...

    文章出处

    1. 联合( | )
      联合(union)操作和集合的 OR(又称可兼析取(inclusive disjunction))其实是等价的,两个集合的联合是一个新集合,该集合中的每个元素都至少是其中一个集合的成员,即属于两个集合其中之一的成员。联合符号有一个等价的方法:union()。
    2. 交集( & )
      可以把交集操作比做集合的AND(或合取)操作。两个集合的交集是一个新集合,该集合中的每个元素同时是两个集合中的成员,即属于两个集合的成员。交集符号有一个等价的方法:intersection()。

    3. 差补/相对补集( – )
      两个集合(s 和 t)的差补或相对补集是指一个集合 C,该集合中的元素,只属于集合 s,而不属于集合 t。差符号有一个等价的方法:difference()。

    4. 对称差分( ^ )
      和其他的布尔集合操作相似,对称差分是集合的XOR(又称“异或” (exclusive disjunction))。两个集合(s 和 t)的对称差分是指另外一个集合C,该集合中的元素,只能是属于集合 s 或者集合t的成员,不能同时属于两个集合。对称差分有一个等价的方法:symmetric_difference()。

    展开全文
  • 主要介绍了Python实现两个list求交集,并集,差集的方法,结合实例形式分析了Python使用intersection、union及difference方法实现两个集合list的交集、并集与差集操作技巧,需要的朋友可以参考下
  • 要求: 两个有序集合,集合中每个元素都是一段范围,... 最简单方法就是遍历两个集合,针对集合中每个元素判断是否有交集,如果有,则交集。 方法二:特征法 方法一没有利用集合有序的特点,因此,不是...

    要求:

           两个有序集合,集合中每个元素都是一段范围,求其交集。例如集合{[4,8],[9,13]}和{[6,12]}的交集为{[6,8],[9,12]}。

    分析:

           方法一:蛮力法

           最简单方法就是遍历两个集合,针对集合中每个元素判断是否有交集,如果有,则求其交集。

           方法二:特征法

           方法一没有利用集合有序的特点,因此,不是最佳的方法。假设两个集合s1,s2,当前比较集合为s1[i]与s2[j],其中i与j分别是集合s1与s2的下标,可以分为几种情况:

           (1)s1集合下界小于s2上界,显然没有交集

           (2)s1上界介于s2下界与上界之间,交集为s2下界与s1上界

           (3)s1包含s2,交集为s2

           (4)s2包含s1,交集为s1

           (5)s1下界介于s2下界与上界之间,交集为s1下界与s2上界

           (6)s2上界小于s1下界,显然没有交集

    实现代码:

    #方法一
    # -*- coding:utf-8 -*-
    class MySet():
        def __init__(self,mins,maxs):
            self.mins = mins
            self.maxs = maxs
        def getMin(self):
            return self.mins
        def setMin(self,mins):
            self.mins = mins
        def getMax(self):
            return self.maxs
        def setMax(self,maxs):
            self.maxs = maxs
            
    def getIntersection(s1,s2):
        if s1.getMin() < s2.getMin():
            if s1.getMax() < s2.getMin():
                return None
            elif s1.getMax() <= s2.getMax():
                return MySet(s2.getMin(),s1.getMax())
            else:
                return MySet(s2.getMin(),s2.getMax())
        elif s1.getMin() <= s2.getMax():
            if s1.getMax() <= s2.getMax():
                return MySet(s1.getMin(),s1.getMax())
            else:
                return MySet(s1.getMin(),s2.getMax())
        else:
            None
    
    def getIntersection2(l1,l2):
        result = []
        i = 0
        while i < len(l1):
            j = 0
            while j < len(l2):
                s = getIntersection(l1[i],l2[j])
                if s != None:
                    result.append(s)
                j += 1
            i += 1
        return result
    
    if __name__ == "__main__":
        l1 = []
        l2 = []
        l1.append(MySet(4,8))
        l1.append(MySet(9,13))
        l2.append(MySet(6,12))
        result = getIntersection2(l1,l2)
        i = 0
        while i < len(result):
            print("["+str(result[i].getMin())+","+str(result[i].getMax())+"]")
            i +=1

           运行结果:

    [6,8]
    [9,12]
    #方法二
    # -*- coding:utf-8 -*-
    class MySet():
        def __init__(self,mins,maxs):
            self.mins = mins
            self.maxs = maxs
        def getMin(self):
            return self.mins
        def setMin(self,mins):
            self.mins = mins
        def getMax(self):
            return self.maxs
        def setMax(self,maxs):
            self.maxs = maxs
    
    def getItersections(l1,l2):
        result = []
        i = 0
        j = 0
        while i < len(l1) and j < len(l2):
            s1 = l1[i]
            s2 = l2[j]
            if s1.getMin() < s2.getMin():
                if s1.getMax() < s2.getMin():
                    i += 1
                elif s1.getMax() <= s2.getMax():
                    result.append(MySet(s2.getMin(),s1.getMax()))
                    i += 1
                else:
                    result.append(MySet(s2.getMin(),s2.getMax()))
                    j += 1
            elif s1.getMin() <= s2.getMax():
                if s1.getMax() <= s2.getMax():
                    result.append(MySet(s1.getMin(),s1.getMax()))
                    i += 1
                else:
                    result.append(MySet(s1.getMin(),s2.getMax()))
                    j += 1
            else:
                j += 1
        return result
    
    if __name__ == "__main__":
        l1 = []
        l2 = []
        l1.append(MySet(4,8))
        l1.append(MySet(9,13))
        l2.append(MySet(6,12))
        result = getItersections(l1,l2)
        i = 0
        while i < len(result):
            print("["+str(result[i].getMin())+","+str(result[i].getMax())+"]")
            i += 1

           运行结果:

    [6,8]
    [9,12]
    

    性能分析:

           方法一时间复杂度为O(N^{2})。

           方法二时间复杂度为O(N1+N2),其中N1、N2分别为两个集合大小。

     

     

    展开全文
  • 本文主要介绍在python3环境下,对集合和字典求交集、差集、并集的方式。 在python2环境下,字典中的对象需要先转换为集合。   1.集合 a = set([1,2,3,4,5,100,1000]) b = set([1,2,3,4,5,128.1024]) #交集 ...
  • python两个 list 获取交集,并集,差集的方法 1. 获取两个list 的交集/方法一: a=[2,3,4,5] b=[2,5,8] tmp = [j for j in a if j in b] #列表推导式的两个列表的交集 print(tmp) print("**"*100) 方法二: print...
  • java求两个集合交集和并集java如何求两个集合交集和并集呢??其实java的API中已经封装了方法。今天写个简单的例子测试一下:(例子中以java.util.LinkedList为例)连个集合的交集:import java.util.ArrayList;...
  • 并集、交集、差集的概念 ...python实现求两个list的交集 假设两个list分别为a和b: way1:a_b = list(set(a) | set(b)) way2:a_b = list(set(a).union(set(b))) 如图: python实现求两个l...
  • 1、题目:求两个集合交集、并集、差集 1.1代码 #include <iostream> #include <stdio.h> #include <string> using namespace std; //集合的交集、并集运算 string quchong(string str) //字符串...
  • ...​tmp = [val for val in a if val in b] #列表推导式两个列表的交集 ​print tmp #[2, 5] #方法二 ​ print list(set(a).intersection(set(b))) #列用集合的取交集方法2. 获取两个li...
  • 问题解决 # condin:utf-8 ...# 求两个集合交集 print(list(set(a).intersection((set(b))))) # 求两个集合的并集 print(list(set(a).union(set(b)))) # 求两个集合的差集 print(list(set(a).diffe...
  • Python程序员面试算法宝典---解题总结: 第4章 数组 4.23 如何求两个有序集合交集 题目: 有两个有序的集合集合中的每个元素都是一段范围,交集, 例如集合{[4, 8], [9, 13]}和{[6, 12]}的交集为 {[6, 8], [9...
  • 1.获取两个liet的交集 ...tmp = [i for i in a if i in b] #列表推导式两个列表的交集 print(tmp) 方法二: print(list(set(a).intersection(set(b))) #列用集合的取交集方法 方法三: lst = [] for i in ...
  • class Solution: def intersection(self, nums1, nums2): &amp;quot;&amp;quot;&amp;quot; :type nums1: List[int] :type nums2: List[int] :rtype: List[int] &amp;...
  • 两个有序的集合集合的每个元素都是一段范围,交集,例如集合{[4,8],[9,13]}和{[6,12]}的交集为{[6,8],[9,12]} 思路 循环遍历两个不同集合中的区间,两两作比较,只有一个区间是另一个区间的子集的时候,...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • #1, 创建第一image与mask img_zero = np.zeros((900, 1200, 3), dtype=np.uint8) img_zero_sample = img_zero.copy() img_zero_2 = img_zero.copy() print(img_zero.shape) # points = np.array([[101, ...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 求两个列表的交集Python

    千次阅读 2018-06-15 17:33:56
    如果s的当前元素小于t的当前元素...假设s、t中的元素个数分别为m和n,主循环的每次迭代总能处理掉两个集合中的至少一个元素,所以此算法的时间复杂度是O(m+n)。def findIntersection(s,t): s.sort() t.sort() ...
  • 主要介绍了Python求两个文本文件以行为单位的交集、并集与差集的方法,涉及Python文本文件与集合运算的相关技巧,需要的朋友可以参考下
  • 交集对于给定的两个集合A 和 集合B 的交集是指含有所有既属于 A 又属于 B 的元素,而没有其他元素的集合叫交集了,下面给出几个python求列表交集例子供大家参考。 方法1 遍历b1,如果某个元素同时也存在于b2中,则返回...
  • 方法一 两个集合 python版本 class Solution: def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]: set1 = set(nums1) set2 = set(nums2) return self.set_intersection(set1, set2)...

空空如也

空空如也

1 2 3 4 5
收藏数 100
精华内容 40
关键字:

python两个集合求交集

python 订阅