zoukankan      html  css  js  c++  java
  • Python——数据类型之set

     本篇主要内容

    • set集合的特点

    • set集合的建立

    • set集合的17个内置函数

    • set集合的数学运算符号

    1、set集合类型的特点。

    1、无序

    2、不同元素

    3、元素必须不可变。(数字,字符串,元组都属于不可变的,列表,字典属于可变的。)

    2、set集合的建立

    a={'Albert', 'QQ','XP'}
    print(type(a),a)

    输出

    <class 'set'> {'Albert', 'QQ', 'XP'}

    元素不可为可变数据类型

    a={'Albert', 'QQ','XP',(1,2,3)}
    print(a)
    b={'Albert', 'QQ','XP',[1,2,3]}
    print(b)

    输出

    {'XP', (1, 2, 3), 'Albert', 'QQ'}
    Traceback (most recent call last):
      File "C:/Users/admin/PycharmProjects/temp.py", line 12, in <module>
        b={'Albert', 'QQ','XP',[1,2,3]}
    TypeError: unhashable type: 'list'

    也可以这样新建一个集合

    a=set(['Albert', 'QQ','XP'])
    print(a)

    输出

    {'Albert', 'QQ', 'XP'}

    也就是遍历元素生成一个集合。

    3、set的内置函数方法

    (1)add(self, *args, **kwargs):这很简单的往集合里面放元素。

    a=set(['Albert', 'QQ','XP'])
    a.add('yzp')
    print(a)

    输出

    {'XP', 'Albert', 'QQ', 'yzp'}

    从输出可以看出来集合里面元素的存放是无序的。

    注:一次只能加一个不可变元素。

    (2)clear(self, *args, **kwargs):清空整个集合

    (3)copy(self, *args, **kwargs):复制一个一模一样的集合(还是b=a与b=a.copy()的区别)

    (4)difference(self, *args, **kwargs):得到多个集合的差集。

    a={'Albert', 'QQ','XP'}
    b={'QQ','XP','yzp'}
    print(a.difference(b))

    输出

    {'Albert'}

    直白的说就是a有而b没有的。

    (5)difference_update(self, *args, **kwargs):求差集并更新这个集合

    a={'Albert', 'QQ','XP'}
    b={'QQ','XP','yzp'}
    print(a.difference_update(b))
    print(a)

    输出

    None
    {'Albert'}

    (6)discard(self, *args, **kwargs):删除集合里面的指定元素,如果不存在这个元素,什么也不做(不报错)

    a={'Albert', 'QQ','XP'}
    a.discard('QQ')
    print(a)

    输出

    {'XP', 'Albert'

    (7)intersection(self, *args, **kwargs):求交集

    a={'Albert', 'QQ','XP'}
    b={'QQ','XP','yzp'}
    print(a.intersection(b))

    输出

    {'QQ', 'XP'}

    通俗的来说就是ab都有的

    (8)intersection_update(self, *args, **kwargs):求集并更新集合

    a={'Albert', 'QQ','XP'}
    b={'QQ','XP','yzp'}
    print(a.intersection_update(b))
    print(a)

    输出

    None
    {'XP', 'QQ'}

    (9)isdisjoint(self, *args, **kwargs):如果交集为空,返回true

    a={'Albert', 'QQ','XP'}
    b={'QQ','XP','yzp'}
    print(a.isdisjoint(b))

    输出

    False

    (10)issubset(self, *args, **kwargs),判断是不是被包含。

    a={ 'QQ','XP'}
    b={'QQ','XP','yzp'}
    print(a.issubset(b))

    输出

    True

    (11)issuperset(self, *args, **kwargs):判断是不是包含

    a={ 'Albert','QQ','XP'}
    b={'QQ','XP'}
    print(a.issuperset(b))

    输出

    True

    (12)pop(self, *args, **kwargs):随机删除一个元素,如果集合为空,则报错KeyError

    a={ 'Albert','QQ','XP'}
    a.pop()
    print(a)

    输出

    {'QQ', 'XP'}

     (13)remove(self, *args, **kwargs):删除指定元素,元素不存在则报错KeyError

    a={ 'Albert','QQ','XP'}
    a.remove('Albert')
    print(a)
    a.remove('yzp')

    输出

    {'QQ', 'XP'}
    Traceback (most recent call last):
      File "C:/Users/admin/PycharmProjects/temp.py", line 13, in <module>
        a.remove('yzp')
    KeyError: 'yzp'

     (14)symmetric_difference(self, *args, **kwargs):求交叉补集

    a={ 'Albert','QQ','XP'}
    b={'QQ','XP','yzp'}
    print(a.symmetric_difference(b))

    输出

    {'Albert', 'yzp'}

    (15)symmetric_difference_update(self, *args, **kwargs):求交叉补集并更新集合

    (16)union(self, *args, **kwargs):求并集

    a={ 'Albert','QQ','XP'}
    b={'QQ','XP','yzp'}
    print(a.union(b))

    输出

    {'XP', 'QQ', 'yzp', 'Albert'}

    (17)update(self, *args, **kwargs):更新集合。也就是求并集并更新这个集合

    a={ 'Albert','QQ','XP'}
    b={'QQ','XP','yzp'}
    a.update(b)
    print(a)

    输出

    {'yzp', 'Albert', 'QQ', 'XP'}

     4、数学运算符

    求交集 a&b

    求并集 a|b

    求差集 a-b,或者b-a

    求交叉补集 a^b

    a={1,2,3}
    b={2,3,4}
    print(a&b)
    print(a|b)
    print(a-b)
    print(b-a)
    print(a^b)

    输出

    {2, 3}
    {1, 2, 3, 4}
    {1}
    {4}
    {1, 4}
  • 相关阅读:
    Jmeter设计压力测试场景&请求元件之并发场景设置&Jmeter查看压力测试结果&压力测试结果分析(二十九)
    Jmeter录制APP脚本(二十八)
    Jmeter优化web脚本&Jmeter回放web脚本和联调&Jmeter WEB脚本参数化(二十七)
    Jmeter结合badboy录制脚本(二十六)
    Jmeter录制WEB的原理(二十五)
    Jmeter实践:一粒云项目—Jmeter获取文件列表与下载接口串联测试及上传文件与下载接口之间的串联测试(二十四)
    Jmeter实践:一粒云项目—Jmeter完成文件的列表获取及JSON Extractor获取数组类型的数据及正则表达式获取数组类型的数据(二十三)
    Jmeter实践:一粒云项目—Jmeter完成文件下载及批量完成文件下载(二十二)
    Jmeter实践:一粒云项目—Jmeter完成文件上传及批量完成文件上传(二十一)
    Jmeter实践——新的项目介绍(二十)
  • 原文地址:https://www.cnblogs.com/albert-yzp/p/10166476.html
Copyright © 2011-2022 走看看