精华内容
下载资源
问答
  • PYTHON差集
    2022-05-24 22:21:40

    创建集合

    a = {1, 2, 3, 4}
    b = {3, 4, 5, 6}
    c = {1, 3, 10}

    返回集合的差集

    print(“a与b的差集:”, a - b) # 返回{1, 2}
    print(“a与c的差集:”, a - c) # 返回{2, 4}
    print(“a与b、c的差集:”, a - b - c) # 返回{2}
    print(“b与c的差集:”, b.difference©) # 返回{4, 5, 6}
    print(“c与b的差集:”, c.difference(b)) # 返回{1, 10}

    更多相关内容
  • 两个集合的差集包含了第一个集合中存在,但是第二个集合中不存在的所有元素。 集合的 difference() 方法和差集操作符(-)都可以用于查找多个集合的差集

    本篇我们学习集合的差集操作,它可以返回两个或多个集合的差异。

    集合的差集

    两个集合的差集包含了第一个集合中存在,但第二个集合中不存在的所有元素。

    以下是集合 s1 和 s2:

    s1 = {'Python', 'Java', 'C++'}
    s2 = {'C#', 'Java', 'C++'}
    

    s1 和 s2 的差集结果只有一个元素:

    {'Python'}
    

    因为“Python”属于第一个集合,但不属于第二个集合。

    集合的差集不具有可交换性,s2 和 s1 的差集如下:

    {'C#'}
    

    以下文氏图解释了集合 s1 和 s2 的差集:

    Python set difference

    同理,以下文氏图解释了集合 s2 和 s1 的差集:

    差集

    在 Python 中,我们可以使用集合的 difference() 方法或者交集操作符(-)返回两个或多个集合的差集。

    difference() 方法

    集合类型的 difference() 方法可以返回两个或多个集合的差集:

    set1.difference(s2, s3, ...)
    

    例如,以下示例使用 difference() 方法查找集合 s1 和 s2 的差集:

    s1 = {'Python', 'Java', 'C++'}
    s2 = {'C#', 'Java', 'C++'}
    s = s1.difference(s2)
    
    print(s)
    

    输出结果如下:

    {'Python'}
    

    下面的示例同样使用 difference() 方法返回集合 s2 和 s1 的差集:

    s1 = {'Python', 'Java', 'C++'}
    s2 = {'C#', 'Java', 'C++'}
    s = s2.difference(s1)
    
    print(s)
    

    输出结果如下:

    {'C#'}
    

    difference() 方法返回了一个新的集合,不会修改原始集合。

    差集操作符

    除了 difference() 方法之外,Python 还提供了差集操作符(-),也可以用于获取多个集合的差集。

    s = s1 - s2
    

    以下示例使用差集操作符查找集合 s1 和 s2 的差集:

    s1 = {'Python', 'Java', 'C++'}
    s2 = {'C#', 'Java', 'C++'}
    s = s1 - s2
    
    print(s)
    

    下面的示例使用差集操作符获取集合 s2 和 s1 的差集:

    s1 = {'Python', 'Java', 'C++'}
    s2 = {'C#', 'Java', 'C++'}
    s = s2 - s1
    
    print(s)
    

    输出结果如下:

    {'C#'}
    

    以下示例返回了多个集合的对称差集:

    s1 = {1, 2, 3}
    s2 = {2, 3, 4}
    s2 = {3, 4, 5}

    s = s1 - s2 - s3

    print(s)

    
    输出结果如下:
    
    ```python
    {1}
    

    两种方法比较

    集合的 difference() 方法可以支持一个或多个可遍历对象(例如字符串、列表、字典等),但是差集操作符只支持集合类型。

    当我们将可遍历对象传递给 difference() 方法,它会将其转换为集合之后再执行差集操作。以下示例使用 difference() 方法获取一个集合与一个列表的差集:

    scores = {7, 8, 9}
    numbers = [9, 10]
    new_scores = scores.difference(numbers)
    
    print(new_scores)
    

    如果我们将以上示例中的 difference() 方法替换为差集操作符,将会返回一个错误:

    scores = {7, 8, 9}
    numbers = [9, 10]
    new_scores = scores - numbers
    
    print(new_scores)
    TypeError: unsupported operand type(s) for -: 'set' and 'list'
    

    总价

    • 两个集合的差集包含了第一个集合中存在,但是第二个集合中不存在的所有元素。
    • 集合的 difference() 方法和差集操作符(-)都可以用于查找多个集合的差集。
    展开全文
  • python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.sets 支持 ...

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.

    sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持 indexing, slicing, 或其它类序列(sequence-like)的操作。

    下面来点简单的小例子说明把。 >>> x = set('spam')

    >>> y = set(['h','a','m'])

    >>> x, y

    (set(['a', 'p', 's', 'm']), set(['a', 'h', 'm'])) >>> x & y # 交集

    set(['a', 'm'])

    >>> x | y # 并集

    set(['a', 'p', 's', 'h', 'm'])

    >>> x - y # 差集

    set(['p', 's'])

    有网友提问怎么去除海量列表里重复元素,用hash来解决也行,只不过感觉在性能上不是很高,用set解决还是很不错的,示例如下: >>> a = [11,22,33,44,11,22]

    >>> b = set(a)

    >>> b

    set([33, 11, 44, 22])

    >>> c = [i for i in b]

    >>> c

    [33, 11, 44, 22]

    几行就可以搞定。

    python集合

    集合用于包含一组无序的对象。要创建集合,可使用set()函数并像下面这样提供一系列的项: s = set([3,5,9,10]) #创建一个数值集合

    t = set("Hello") #创建一个唯一字符的集合

    与列表和元组不同,集合是无序的,也无法通过数字进行索引。此外,集合中的元素不能重复。例如,如果检查前面代码中t集合的值,结果会是: >>> t

    set(['H', 'e', 'l', 'o'])

    注意只出现了一个'l'。

    集合支持一系列标准操作,包括并集、交集、差集和对称差集,例如:

    a = t | s #t 和 s的并集

    b = t & s #t 和 s的交集

    c = t – s #求差集(项在t中,但不在s中)

    d = t ^ s #对称差集(项在t或s中,但不会同时出现在二者中)

    python集合基本操作:

    t.add('x') # 添加一项

    s.update([10,37,42])# 在s中添加多项

    t.remove('H') 使用remove()可以删除一项:

    len(s)set 的长度

    x in s测试 x 是否是 s 的成员

    x not in s测试 x 是否不是 s 的成员

    测试是否 s 中的每一个元素都在 t 中 s.issubset(t)

    s <= t

    测试是否 t 中的每一个元素都在 s 中 s.issuperset(t)

    s >= t

    返回一个新的 set 包含 s 和 t 中的每一个元素 s.union(t)

    s | t

    返回一个新的 set 包含 s 和 t 中的公共元素 s.intersection(t)

    s & t

    返回一个新的 set 包含 s 中有但是 t 中没有的元素 s.difference(t)

    s - t

    返回一个新的 set 包含 s 和 t 中不重复的元素 s.symmetric_difference(t)

    s ^ t

    返回 set “s”的一个浅复制 s.copy()

    请注意:union(), intersection(), difference() 和 symmetric_difference() 的非运算符(non-operator,就是形如 s.union()这样的)版本将会接受任何 iterable 作为参数。

    相反,它们的运算符版本(operator based counterparts)要求参数必须是 sets。这样可以避免潜在的错误,如:为了更可读而使用 set('abc') & 'cbs' 来替代 set('abc').intersection('cbs')。从 2.3.1 版本中做的更改:以前所有参数都必须是 sets。

    另外,Set 和 ImmutableSet 两者都支持 set 与 set 之间的比较。

    两个 sets 在也只有在这种情况下是相等的:每一个 set 中的元素都是另一个中的元素(二者互为subset)。一个 set 比另一个 set 小,只有在第一个 set 是第二个 set 的 subset 时(是一个 subset,但是并不相等)。

    一个 set 比另一个 set 打,只有在第一个 set 是第二个 set 的 superset 时(是一个 superset,但是并不相等)。

    子 set 和相等比较并不产生完整的排序功能。例如:任意两个 sets 都不相等也不互为子 set,因此以下的运算都会返回 False:ab。因此,sets 不提供 __cmp__ 方法。

    因为 sets 只定义了部分排序功能(subset 关系),list.sort() 方法的输出对于 sets 的列表没有定义。

    返回增加了 set “t”中元素后的 set “s” s.update(t)

    s |= t

    返回只保留含有 set “t”中元素的 set “s” s.intersection_update(t)

    s &= t

    返回删除了 set “t”中含有的元素后的 set “s” s.difference_update(t)

    s -= t

    返回含有 set “t”或者 set “s”中有而不是两者都有的元素的 set “s” s.symmetric_difference_update(t)

    s ^= t

    向 set “s”中增加元素 x s.add(x)

    从 set “s”中删除元素 x, 如果不存在则引发 KeyError s.remove(x)

    如果在 set “s”中存在元素 x, 则删除 s.discard(x)

    删除并且返回 set “s”中的一个不确定的元素, 如果为空则引发 KeyError s.pop()

    删除 set “s”中的所有元素 s.clear()

    请注意:

    非运算符版本的 update(), intersection_update(), difference_update()和symmetric_difference_update()将会接受任意 iterable 作为参数。从 2.3.1 版本做的更改:以前所有参数都必须是 sets。

    这个模块还包含一个 union_update() 方法,它是 update() 方法的一个别名。包含这个方法是为了向后兼容。程序员们应该多使用 update() 方法,因为这个方法也被内置的 set() 和 frozenset() 类型支持。

    关于更多python set集合比较内容请查看下面相关文章

    展开全文
  • -计算集合之间的差集 文章目录`-`计算集合之间的差集1.语法要点2.实操练习什么是差集?温馨提示3.综合练习对选修课集合进行交集、并集、差集运算4.课后总结 1.语法要点 -符号用来计算集合之间的差集。 -符号就是我们...

    -计算集合之间的差集

    1.语法要点

    -符号用来计算集合之间的差集。
    -符号就是我们键盘上的减号。
    set_1 - set_2 删除两个集合都有的元素,保留集合1特有的元素。
    set_2 - set_1 删除两个集合都有的元素,保留集合2特有的元素。
    顺序很重要,谁在前就保留谁特有的元素。
    差集可以用数学中的减法进行理解,减数和被减数位置不一样结果不一样。
    (文字抽象不能理解的,看完下面的实例就能理解了)

    在这里插入图片描述

    2.实操练习

    # 用set方法将字符串转变成集合
    set_1 = set('123')
    set_2 = set('345')
    set_3 = set('456')
    
    print('集合1:',set_1)
    print('集合2:',set_2)
    print('集合3:',set_3,'\n')
    
    print('*******用-计算集合之间的差集*******')
    print('集合1与集合2的差集', set_1 - set_2)
    print('集合2与集合1的差集', set_2 - set_1,'\n')
    
    print('集合2与集合3的差集', set_2 - set_3)
    print('集合3与集合2的差集', set_3 - set_2,'\n')
    
    print('集合1与集合2、3的差集', set_1 - set_2 - set_3)
    

    【终端输出】

    集合1: {'2', '1', '3'}
    集合2: {'4', '5', '3'}
    集合3: {'4', '6', '5'} 
    
    *******用-计算集合之间的差集*******
    集合1与集合2的差集 {'2', '1'}
    集合2与集合1的差集 {'4', '5'} 
    
    集合2与集合3的差集 {'3'}
    集合3与集合2的差集 {'6'} 
    
    集合1与集合2、3的差集 {'2', '1'}
    

    什么是差集?

    集合1含有元素1、2、3
    集合2含有元素3、4、5
    集合3含有元素4、5、6

    集合1与集合2都有的元素是3,那集合1与集合2的差集是1、2。(以集合1为基准,删除2个集合都有的元素3后,保留集合1特有的元素1,2)。
    集合1与集合2都有的元素是3,那集合2与集合1的差集是4、5。(以集合2为基准,删除2个集合都有的元素3后,保留集合2特有的元素4,5)。

    集合2与集合3都有的元素是4,5,那集合2与集合3的差集是3。(以集合2为基准,删除2个集合都有的元素4,5后,保留集合2特有的元素3)。
    集合2与集合3都有的元素是4,5,那集合3与集合2的差集是6。(以集合3为基准,删除2个集合都有的元素4,5后,保留集合3特有的元素6)。

    集合1与集合2、3的差集:
    先计算集合1与2的差集,得到元素1和元素2。
    在用得到的元素与集合3进行差集运算。
    得到的元素1、元素2和集合3没有相同的元素。
    因此,最终得到的结果就是元素1和元素2。

    温馨提示

    所有的集合运算都要注意集合的先后顺序。
    就像减法一样,减数和被减数是不能替换的。
    上述例子中,集合1在-前后的结果是截然不同的,需要特别注意。

    3.综合练习

    对选修课集合进行交集、并集、差集运算

    # 定义一个集合保存选择Python语言的学生姓名
    python_name = {'张三','李四','王五','赵六'}
    
    # 定义一个集合保存选择JAVA语言的学生姓名
    # 用列表存储姓名
    # 用set函数将列表转换为集合
    java_name = set(['张三','李四','白敬亭','井柏然'])
    
    print('本学期选择Python语言的学生有:',python_name)
    print('本学期选择java语言的学生有:',java_name,'\n')
    
    # 输出选了两门课程的学生名字
    print('交集运算(有2门选修课):',python_name & java_name)
    
    # 输出有选修语言课的学生姓名
    print('并集运算(有选修课):',python_name | java_name)
    
    # 输出只选了Python课没选Java课的学生姓名
    print('差集运算(只选Python):',python_name - java_name)
    
    # 输出只选了java课没选python课的学生姓名
    print('差集运算(只选Java):',java_name - python_name)
    

    【终端输出】

    本学期选择Python语言的学生有: {'张三', '李四', '王五', '赵六'}
    本学期选择java语言的学生有: {'张三', '白敬亭', '李四', '井柏然'} 
    
    交集运算(有2门选修课): {'张三', '李四'}
    并集运算(有选修课): {'白敬亭', '王五', '李四', '井柏然', '张三', '赵六'}
    差集运算(只选Python): {'王五', '赵六'}
    差集运算(只选Java): {'白敬亭', '井柏然'}
    

    4.课后总结

    在这里插入图片描述

    展开全文
  • python 列表作差集

    2020-12-08 13:35:08
    问题描述:假设我有这样两个list,一个是list1,list1 = [1, 2, 3, 4, 5]一个是list2,list2 = [1, 4, 5]我们如何得到一个新的list,list3,list3中包括所有不在list2中出现的list1中的元素。即:list3 = list1 - ...
  • python 数组 交集 并集 差集 1.交集 a = [1, 3, 5] b = [2, 3, 4] print(set(a).intersection(b)) #输出 {3} 2.并集 a = [1, 3, 5] b = [2, 3, 4] print(set(a).union(b)) #输出 {1, 2, 3, 4, 5} 3.差集 a = [1, 3...
  • python list 差集

    2022-02-25 06:09:34
    前言 有时候我们希望基于list得到一...即:差集。 基于set A = [1, 2, 3] B = [2, 3, 4] C = set(A) - set(B) 但是这样结果也是set类型 基于推导式 A = [1, 2, 3] B = [2, 3, 4] C = [i for i in A if not i in B] ...
  • python-列表list的差集运算

    千次阅读 2019-09-22 22:05:25
    综述 有时候我们希望得到一个集合C,该...即:差集。 代码 基于set A = [1,2,3] B = [1,5] C = set(A) - set(B) 但是这样结果也是set类型 基于推导式 A = [1,2,3] B = [1,5] C =[i for i in A if not i in B] ...
  • Python列表的差集

    万次阅读 2018-04-09 22:07:38
    方法三: 用集合的求差集 >>> A = ['2018-01-01','2018-02-01','2018-03-01','2018-04-01'] >>> B = ['2018-03-01','2018-03-08'] >>> set(A) - set(B) {'2018-04-01', '2018-01-01', '2018-02-01'} 备注: 使用集合...
  • Python中集合的差集和对称差集

    千次阅读 2021-11-07 23:29:44
    以下python代码的输出结果是什么? s1 = {1,2,3,5} s2 = {2,3,4} s3 = s1.difference(s2) s4 = s1.symmetric_difference(s2) print(s3,s4) 选项: A {1,4,5} {1,5} B {1,5} {1,4,5} C {2,3} {1,4,5} D {1,4,5} {2,3}...
  • 今天小编就为大家分享一篇python DataFrame 取差集实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python集合的差集difference函数

    千次阅读 2021-08-04 21:01:19
    什么是差集 difference的功能 difference的用法 什么是差集 a,b两个集合,由所有属于a且不属于b的元素组成的集合叫做a与b的差集 difference的功能 返回集合的差集,即返回的集合元素包含在第一个集合中,但不...
  • python差集:a-b不等于b-a?

    千次阅读 2019-11-27 11:14:32
    关于set数据类型进行集合运算 话不多说,直接上代码。 >>>a = {'1', '2', '3'} >>>b = {'3', '4', '5'} >...print(a - b) # a 和 b 的差集 ...可以看到在求a和b的差集时,a-b与b...
  • python差集和交集

    2021-08-10 13:35:52
    工作中,我们对比数据时,常常用到差集和交集。 #取差集,取data1在data中没有的公司,如果是data中有,data1中没有,则difference_set = set((data['公司'])).difference(set(data1['公司'])),交集时,用法一样。 ...
  • 欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中集合的交集、并集、差集和对称差集运算方法详解》。主要讲的是集合运算的相关的概念,及运算方法,包括:集合的交集、集合的并集、集合的差集、...
  • 差集: 调用函数difference()或者 - ,原集合不发生变化 对称差集: 调用函数symmetric_difference() 或者 ^ ,原集合不发生变化 代码 """ 集合间的数学操作 交集: 调用函数intersection()或者 & ,原...
  • python的list差集

    千次阅读 2018-10-10 13:25:29
    两个list差集 如有下面两个数组:a = [1,2,3] b = [2,3] 想要的结果是[1] 下面记录一下三种实现方式: 1. 正常的方式  代码如下 复制代码 ret = [] for i in a:  if i not in...
  • 文章目录1 什么是集合2 集合的创建3 集合的增删改3.1 add的功能3.2 update的功能3.3 remove的功能3.4 clear的功能3.4 del删除集合4 集合的差集—difference函数5 集合的交集—intersection函数6 集合的并集-union...
  • 差集-python版本

    2019-10-31 20:08:42
    差集-python版本 简介 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。 ...
  • 查阅网上资料,获取python中两个list的交集、并集、差集主要有两种不同的方法,具体哪种方法的效率高还未测试。两种方法具体如下:测试用例x=['a', 'c', 'b', 'e', 'd']y=['b','d','x','y','z']方法一ps:方法一主要...
  • numpy 中 setdiffld() 函数 可用来求差集
  • python list 求差集

    2022-08-30 15:04:13
    python list 求差集
  • 本文实例讲述了Python实现两个list求交集,并集,差集的方法。分享给大家供大家参考,具体如下: 在python中,数组可以用list来表示。如果有两个数组,分别要求交集,并集与差集,怎么实现比较方便呢? 当然最容易...
  • 1. 数组取交集 aa = [1, 2, 3, 4,... 数组取差集 aa = [1, 2, 3, 4, 5] bb = [1, 2, 3, 7, 8] # 方法一: difference = list(set(bb).difference(set(aa))) # bb中有而aa中没有的 print (difference) # 结果输出 [7, 8]
  • python的集合set和其他语言类似,是一个无序不重复元素集, 可用于消除重复元素。 支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算。 不支持 indexing, slicing, 或...
  • 2.差集/交集/并集/对称差集 """ set1 = {1, 2, 3, 4} set2 = {1, 2, 7, 8} # 差集 print(set1 - set2) # {3, 4},set1有set2没有的 print(set2 - set1) # {7, 8},set2有set1没有的 # 并集 print(set1 | set2) # {1,...
  • 公众号:尤而小屋作者:Peter编辑:Peter本文讲解的是如何利用Pandas函数求解两个DataFrame的差集、交集、并集。模拟数据 模拟一份简单的数据:In [1]:importpandasaspdIn [2]:df1=pd.DataFrame({"col1":[1,2,3,4,5]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,160
精华内容 11,264
关键字:

PYTHON差集