zoukankan      html  css  js  c++  java
  • 初学Python——集合及其运算

    一、集合定义及其功能

    集合是一个无序的、不重复的数据组合,和字典列表一样也是一种数据类型。

    集合两个最主要的功能:①去重(把一个列表变成集合,就自动去重了)

    ②关系测试(测试两组数据之间的交、并、差集等关系)

    二、关系测试

    首先,如何创建集合?

    两种方式:(1)直接创建

    a=set([1,8,2,3,5,4,5,3])

    (2)将列表转化成集合

    list1=[5,9,7,3,6,6,7,95,78,65,102]       #创建列表

    list1=set(list1)                                      #将列表转化成集合

    在这里需要说明,集合是无序的,尽管将集合a输出:print(a),得到的结果是

    看上去好像自动做了排序,其实不然,只是集合的数据太少了,输出list1就不是这样了:

    1.取两个集合的交集:

    两种写法:①intersection()方法

    print(list1.intersection(a))
    print(a.intersection(list1))

    这两种写法没有任何区别,输出结果都是

    ②数学表示

    print(list_1 & a)

    2.取并集:

    也是两种方法:①union()方法

    print("union:",a.union(list_1))

    ②数学表示

    print("union:",a|list_1)

     输出结果:

    3.取差集:

    亦是两种方法:①difference()方法

    print("difference:",list_1.difference(a))  #差集(list_1减去交集)
    print("difference:",a.difference(list_1))  #差集(a减去交集)

    ②数学表示

    print("list_1 - a :",list_1-a)
    print("a - list_1 :",a-list_1)

    运行结果:

    4.判断是否是父集和子集的关系:

    issubset()方法和issuperset()方法

    print("issubset:",list_1.issubset(a))         #判断list_1是不是a的子集
    print("issuperset:",a.issuperset(list_1))   #判断a是不是List_1的父集

    当然,肯定都不是,再创建一个集合试一试

    list_2=set([1,3,5])
    print(list_2.issubset(a))       #判断list_2是不是a的子集,是则返回True
    print(a.issuperset(list_2))    #判断a是不是list_2的父集,不是返回False

    运行结果:

    5.对称差集:

    对称差集是指两个集合的并集减去交集

    ①symmetric_difference()方法

    print("symmetric_difference:",a.symmetric_difference(list_1))

    ②数学表示

    print("a^list_1:",a^list_1)

    运行结果:

    6.判断是不是相交

    list_3=set([50,30,60])
    print("isdisjoint:",a.isdisjoint(list_3))   #判断两个集合之间的关系是不是相交,如果相交返回False
    print("isdisjoint:",a.isdisjoint(list_2))

    运行结果:

    三、集合的操作

    1.添加数据

    添加一项:

    a.add("abc")   #添加一项

    添加多项:

    a.update([20,30,90])

    2.删除数据

    ①remove()方法

    a.remove("abc") #删除字符“abc”

    ②pop()方法

    print(a.pop())  #随机删除,并返回删除的值

    ③discard()方法

    a.discard(30)   #删除数据

    3.获取集合的长度

    print(len(a)) #集合 a 的长度

    4.判断数据是否是集合的成员

    print(30 in a)           #判断30是否是集合a的成员(列表、字典、集合、字符串都可以用这种方法来判断)
    print(30 not in a)   #判断30是否不是集合a的成员
  • 相关阅读:
    Vue 路由的编程式导航与history模式
    Vue 路由配置、动态路由
    Vue 组件传值
    Vue 组件以及生命周期函数
    Vue 封装js
    记一次proc_open没有开启心得感悟
    面向内容的标记语言--markdonw
    浅谈索引
    mysql主从配置
    centos7下操作防火墙
  • 原文地址:https://www.cnblogs.com/V587Chinese/p/8783748.html
Copyright © 2011-2022 走看看