美文网首页PythonIED
Python求数据的交、并、差集、对称差集

Python求数据的交、并、差集、对称差集

作者: SyntaxErrors | 来源:发表于2018-01-05 21:06 被阅读0次

    1.集合(set)

    首先要了解一下集合set

    set是一个无序不重复元素集,Python数据类型的一种,由于是无序的,不能通过索引和切片来做一些操作。
    主要有添加、删除、交集、并集、差集、对称差集 五种操作

    2.集合的操作

    a.添加

    a=set([1,2,3])
    #方法1:添加1项
    a.add(4)
    #方法2:添加多项,update中的参数必须是迭代器
    a.update([4,5,6])
    

    b.删除(四种方法)

    a.remove(1)    #如果删除不存在的元素,产生KeyError
    a.discard(2)   #如果存在元素2,则删除
    c=a.pop()      #删除一个不确定的元素,并且赋给c,如果集合a为空则产生 KeyError
    a.clear()      #删除集合中所有元素 
    

    c.交、并、差、对称差

    # -*- coding: utf-8 -*-
    """
    Created on Fri Jan  5 19:50:23 2018
    
    @author: Jane
    """
    a=set(range(1,11))             #a为[1,2,3,4,5,6,7,8,9,10]
    b=set(range(0,10,2))           #b为10以内的偶数列[0,2,4,6,8]
    """
    =====================方法一:运算符版本=========================
    """
    union=list(a|b)                #并               
    inter=list(a&b)                #交 
    diff=list(a-b)                 #差
    sys_diff=list(a^b)             #对称差集:在a或b中,不同时存在在两个集合中
    """
    =====================方法二:非运算符版本======================
    """
    tmp1=list(a.union(b))
    tmp2=list(a.intersection(b))
    tmp3=list(a.difference(b))
    tmp4=list(a.symmetric_difference(b))
    
    print(tmp1)               #输出集合的并:0,1,2,3,4,5,6,7,8,9,10
    print(tmp2)               #输出集合的交:2,4,6,8
    print(tmp3)               #输出集合的差:1,3,5,7,9,10 
    print(tmp4)               #输出对称差集:0,1,3,5,7,9,10
    

    相关文章

      网友评论

        本文标题:Python求数据的交、并、差集、对称差集

        本文链接:https://www.haomeiwen.com/subject/knwsnxtx.html