zoukankan      html  css  js  c++  java
  • Python基础【day03】:集合进阶(四)

    本节内容

    1、关系测试(特殊符号)

    1、交集
    2、并集
    3、差集
    4、对称差集
    5、是否是子集
    6、是否是父集

    2、基本操作

    1、add
    2、update
    3、remove VS pop vs discard
    4、len
    5、x in s
    6、x not in s

    一、关系测试(特殊符号)

    1、交集(&)

    >>> name_1 = [1,2,3,4,7,8,7,10]
    >>> name_2 = [1,3,5,8,10]
    >>> name_1 = set(name_1)
    >>> name_2 = set(name_2)
    #结果输出
    >>> name_1 & name_2
    {8, 1, 10, 3}
    

    2、并集(|)

    >>> name_1 = [1,2,3,4,7,8,7,10]
    >>> name_2 = [1,3,5,8,10]
    >>> name_1 = set(name_1)
    >>> name_2 = set(name_2)
    #结果输出
    >>> name_1 | name_2
    {1, 2, 3, 4, 5, 7, 8, 10}
    

     3、差集(-)

    >>> name_1 = [1,2,3,4,7,8,7,10]
    >>> name_2 = [1,3,5,8,10]
    >>> name_1 = set(name_1)
    >>> name_2 = set(name_2)
    #结果输出
    >>> name_1 - name_2
    {2, 4, 7}
    

    4、对称差集(^)

    >>> name_1 = [1,2,3,4,7,8,7,10]
    >>> name_2 = [1,3,5,8,10]
    >>> name_1 = set(name_1)
    >>> name_2 = set(name_2)
    #输出
    >>> name_1 ^ name_2
    {2, 4, 5, 7}
    

    5、是否是子集(<=)

    >>> name_1 = [1,2,3,4,7,8,10]
    >>> name_3 = [1,2,3,4]
    >>> name_1 = set(name_1)
    >>> name_3 = set(name_3)
    #输出
    >>> name_3 <= name_1
    True
    

    6、是否是父集(>=)

    >>> name_1 = [1,2,3,4,7,8,10]
    >>> name_3 = [1,2,3,4]
    >>> name_1 = set(name_1)
    >>> name_3 = set(name_3)
    #输出
    >>> name_1 >= name_3
    True
    

    二、基本操作

    1、添加(add())

    >>> name_2 = [1,3,5,8,10]
    >>> name_2 = set(name_2)
    #添加已存在,不报错
    >>> name_2.add(1)
    >>> name_2
    {8, 1, 10, 3, 5}
    #添加不存在,添加一个新的数值
    >>> name_2.add(11)
    >>> name_2
    {1, 3, 5, 8, 10, 11}
    

     2、添加多项(update())

    >>> name_2 = [1,3,5,8,10]
    >>> name_2 = set(name_2)
    >>> name_2.update([12,13,14])
    #输出结果
    >>> name_2
    {1, 3, 5, 8, 10, 12, 13, 14}
    

     3、删除(remove(),pop(),discard())

    ①remove()

    >>> name_2 = [1,3,5,8,10]
    >>> name_2 = set(name_2)
    >>> name_2
    {8, 1, 10, 3, 5}
    >>> name_2.remove(1)
    #输出
    >>> name_2
    {8, 10, 3, 5}
    #删除不存在的元素,会报错
    >>> name_2.remove(1)
    Traceback (most recent call last):
      File "<input>", line 1, in <module>
    KeyError: 1
    

     特别提示:用remove删除时,当元素不存在,会报错

    ②pop()

    >>> name_2 = [1,3,5,8,10]
    >>> name_2 = set(name_2)
    >>> name_2
    {8, 1, 10, 3, 5}
    #输出
    >>> name_2.pop()
    8
    

     特别提示:pop是随机删除集合中的某个元素,并且打印

    ③discard()

    >>> name_2 = [1,3,5,8,10]
    >>> name_2 = set(name_2)
    >>> name_2.discard(10)
    #输出结果
    >>> name_2
    {8, 1, 3, 5}
    #删除不存在元素,不报错
    >>> name_2.discard(10)
    

    特别提示:用discard删除不存在的元素,不会出现报错

    4、长度(len())

    >>> name_1 = [1,2,3,4,7,8,7,10]
    >>> name_1 = set(name_1)
    #结果输出
    >>> len(name_1)
    7
    

     5、x in s

    测试 x 是否是 s 的成员

    >>> name_1 = [1,2,3,4,7,8,7,10]
    >>> name_1 = set(name_1)
    #结果输出
    >>> 1 in name_1
    True
    

     6、x not in s

    测试 x 是否不是 s 的成员

    >>> name_1 = [1,2,3,4,7,8,7,10]
    >>> name_1 = set(name_1)
    #输出
    >>> 12 not in name_1
    True
  • 相关阅读:
    15.Numpy之点乘、算术运算、切片、遍历和下标取值
    13.python-列表排序
    [Js-c++]c++中的指针、引用和数组名
    [Hadoop]Windows下用eclipse远程连接hdfs报错Connection denied解决方案
    [Java-JVM]Centos7编译openjdk7
    [Js-Java SE]Java中的Native关键字与JNI
    [Js-C++]C++中赋值表达式的结果
    [Js-C++].h文件与#include详解
    [Js-C++]C++中*&(指针引用)和*(指针)的区别
    [Js-Python]解决pip安装安装源速度慢的问题
  • 原文地址:https://www.cnblogs.com/luoahong/p/9887982.html
Copyright © 2011-2022 走看看