Python set集合函数

python 集合 difference()函数用于返回当前集合和另外一个集合的不同。其实也就是求集合的差集。

返回的结果是一个新的没有重复元素的集合,其中返回的元素是当前集合有,而另外一个或多个集合没有。

Python 集合 difference() 函数:求集合差异

上面的图示中,左侧黄色为返回的结果集。

Python中difference_update()函数是没有返回值的,将当前结果集修改为求的结果。

语法

语法如下:
set.difference(*other_set)

    参数

    • other_set:另外的一个或多个集合。

    返回值

    返回一个新的集合,其中返回的元素是当前集合有,而另外一个集合没有。

    程序示例

    介绍一些例子,了解set.difference()函数的使用方法。

    例1

    #!/usr/bin/python
    # coding=utf-8
    nums1 = {1, 2, 2, 3, 4, 5}
    nums2 = {4, 5, 6, 7, 8, 8}
    
    nums3 = nums1.difference(nums2)
    nums4 = nums2.difference(nums1)
    
    print("nums1有nums2没有: ", nums3)
    print("nums2有nums1没有: ", nums4)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    程序运行结果:

    nums1有nums2没有:  {1, 2, 3}
    nums2有nums1没有:  {8, 6, 7}

    上面的例子中,返回的集合是唯一的,没有重复。

    例2

    下面给出一个字符串的例子。

    #!/usr/bin/python
    # coding=utf-8
    siteList1 = {'yxjc123.com','taobao.com','baidu.com','qq.com','jd.com'}
    siteList2 = {'sohu.com','jd.com','baidu.com'}
    
    result1 = siteList1.difference(siteList2)
    result2 = siteList2.difference(siteList1)
    
    print("siteList1有siteList2没有: ", result1)
    print("siteList2有siteList1没有: ", result2)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    程序运行结果.:
    siteList1有siteList2没有:  {'taobao.com', 'yxjc123.com', 'qq.com'}
    siteList2有siteList1没有:  {'sohu.com'}

    例3

    多个集合比较的例子。

    #!/usr/bin/python
    # coding=utf-8
    nums1 = {1, 2, 2, 3, 4, 5}
    nums2 = {4, 5, 6, 7, 8, 8}
    nums3 = { 3, 5, 8, 9, 10}
    
    diff = nums1.difference(nums2, nums3) # 获取的结果是nums1有,nums2和nums3没有
    
    print(diff)  
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    程序运行结果:

    {1, 2}

    例4

    使用操作符 - 也可以得出 上面例子3的结果。

     #!/usr/bin/python
    # coding=utf-8
    nums1 = {1, 2, 2, 3, 4, 5}
    nums2 = {4, 5, 6, 7, 8, 8}
    nums3 = { 3, 5, 8, 9, 10}
    
    # diff = nums1.difference(nums2, nums3) 
    diff = nums1 - nums2 - nums3 # 获取的结果是nums1有,nums2和nums3没有
    
    print(diff) 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    输出结果和上面是一样的。