• 集合set-深入学习


    集合set,无序,是不允许重复内容的,也就是不允许重复元素,如果有重复,会自动忽略,可接收可迭代类型 (一般用于需要判断和处理交集时候用到)

    集合与字典的区别是,集合没有键只有值,字典是有键的字典是一对键值对

    所以创建空集合不能用{}大括号,用大括号创建空集合默认会变成字典,如果需要创建空集合用set()

    创建集合

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #创建集合
    4 a = set()
    5 a = {11,22,33,44,55,55}
    6 print(a)
    7 #打印出 {33, 11, 44, 22, 55}
    View Code 

    集合的类库功能

     add(self*args, **kwargs)

    "添加元素"(要添加的元素)

    clear(self*args, **kwargs)

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #创建一个集合
    4 se = {11,22,33,44}
    5 #向集合里添加元素
    6 se.add(55)
    7 print(se)
    8 #打印出 {33, 11, 44, 22, 55}
    View Code

    "清空元素"()

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #创建一个集合
    4 se = {11,22,33,44}
    5 #清空集合里的元素
    6 se.clear()
    7 print(se)
    8 #打印出 空集合
    View Code

    difference(self*args, **kwargs)

    "查找出一个集合里存在,另外一个集合不存在的元素"(格式:查找集合.difference(被判断的集合)

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #创建二个集合
    4 a = {11,22,33,44}
    5 b = {11,55,88,44}
    6 #查找出a集合里存在,b集合不存在的元素
    7 c = a.difference(b)
    8 print(c)
    9 #打印出 {33, 22}
    View Code

    difference_update(self*args, **kwargs)

    "从当前集合中删除和B中相同的元素"(b集合)

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #创建二个集合
    4 a = {11,22,33,44,999}
    5 b = {11,55,88,44}
    6 #从a集合中删除和b集合中相同的元素
    7 a.difference_update(b)
    8 print(a)
    9 #打印出 {33, 22, 999}
    View Code

     discard(self*args, **kwargs)

    "移除指定元素,不存在不报错"(要移除的元素)

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #创建一个集合
    4 a = {11,22,33,44,999}
    5 #移除指定元素,不存在不报错
    6 a.discard(999)
    7 print(a)
    8 #打印出 {33, 11, 44, 22}
    View Code

    intersection(self*args, **kwargs)

    "交集,查找出a集合和b集合都存在的元素"(b集合

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #创建二个集合
    4 a = {66,22,33,44,99}
    5 b = {44,55,66,77,33}
    6 #交集,查找出a集合和b集合都存在的元素
    7 c = a.intersection(b)
    8 print(c)
    9 #打印出 {33, 66, 44}
    View Code

    intersection_update(self*args, **kwargs)

    "交集,查找出a集合和b集合都存在的元素,并重新更新到a集合"(b集合

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #创建二个集合
    4 a = {66,22,33,44,99}
    5 b = {44,55,66,77,33}
    6 #交集,查找出a集合和b集合都存在的元素,并重新更新到a集合
    7 a.intersection_update(b)
    8 print(a)
    9 #打印出 {33, 66, 44}
    View Code

    isdisjoint(self*args, **kwargs)

    "检查a集合和b集合是否有都存在的元素"(b集合

    返回布尔值:如果没有都存在的,返回True,否则返回False

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #创建二个集合
    4 a = {66,22,33,44,99}
    5 b = {44,55,66,77,33}
    6 #检查a集合和b集合是否有都存在的元素,
    7 c = a.isdisjoint(b)
    8 print(c)
    9 #打印出 False 说明有交集
    View Code

     issubset(self*args, **kwargs)

    "判断一个集合是否是另一个集合的子序列"(b集合)

    是返回True   不是返回False

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #创建二个集合
     4 a = {11,22,33,44}
     5 b = {11,22}
     6 #检查a集合是否是b集合的子序列,
     7 c1 = a.issubset(b)
     8 print(c1)
     9 #检查b集合是否是a集合的子序列
    10 c2 = b.issubset(a)
    11 print(c2)
    12 #打印出
    13 #False 检查a集合是否是b集合的子序列,说明a集合不是b集合的子序列
    14 #True  检查b集合是否是a集合的子序列,说明b集合是a集合的子序列
    View Code

    issuperset(self*args, **kwargs)

    "判断一个集合是否是另一个集合的父序列"(b集合)

    是返回True   不是返回False

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #创建二个集合
     4 a = {11,22,33,44}
     5 b = {11,22}
     6 #检查a集合是否是b集合的父序列,
     7 c1 = a.issuperset(b)
     8 print(c1)
     9 #检查b集合是否是a集合的父序列
    10 c2 = b.issuperset(a)
    11 print(c2)
    12 #打印出
    13 #True  检查a集合是否是b集合的父序列,说明a集合是b集合的父序列
    14 #False 检查b集合是否是a集合的父序列,说明b集合不是a集合的父序列
    View Code

    pop(self*args, **kwargs)

    "移除元素"()

    一般默认移除第一个元素,只是集合有一套自己的元素排序规则,

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 a = {44,55,66,77,88}
     4 #打印出集合,可以看到集合里的元素排序情况
     5 print(a)
     6 #移除集合里的元素,默认移除元素里的第一个排序元素
     7 b = a.pop()
     8 #打印出被移除的元素
     9 print(b)
    10 #打印出a集合被移除后剩下的所有元素
    11 print(a)
    12 #最后打印出
    13 #{88, 66, 44, 77, 55}
    14 #88
    15 #{66, 44, 77, 55}
    View Code

    remove(self*args, **kwargs)

    "移除指定元素,不存在保错"(要移除的元素)

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 a = {44,55,66,77,88}
     4 #打印出a集合
     5 print(a)
     6 #移除a集合里指定的元素
     7 a.remove(44)
     8 #打印a集合移除指定元素后,剩下的所有元素
     9 print(a)
    10 #最后输出
    11 #{88, 66, 44, 77, 55}
    12 #{88, 66, 77, 55}
    复制代码
    View Code

     symmetric_difference(self*args, **kwargs)

    "对称差集,就是将两个集合里没有交集的元素重新组合成一个新的集合"(b集合)

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 a = {44,55,66,77,88}
    4 b = {44,55,11,22,33}
    5 #对称差集,就是将两个集合里没有交集的元素重新组合成一个新的集合
    6 c =  a.symmetric_difference(b)
    7 print(c)
    8 #输出
    9 #{33, 66, 11, 77, 22, 88}
    View Code

    symmetric_difference_update(self*args, **kwargs)

    "对称差集,并更新到a中,就是将两个集合里没有交集的元素重新组合更新给a集合"(b集合)

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 a = {44,55,66,77,88}
    4 b = {44,55,11,22,33}
    5 #对称差集,并更新到a中,就是将两个集合里没有交集的元素重新组合更新给a集合
    6 a.symmetric_difference_update(b)
    7 print(a)
    8 #输出
    9 #{33, 66, 11, 77, 22, 88}
    复制代码
    View Code

    union(self*args, **kwargs)

    "并集,将两个集合合并成一个新的集合,元素有重复的会自动忽略"(b集合)

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 a = {44,55,66,77,88}
    4 b = {44,55,11,22,33}
    5 #并集,将两个集合合并成一个新的集合,元素有重复的会自动忽略只保留一次
    6 c = a.union(b)
    7 print(c)
    8 #输出
    9 #{33, 66, 11, 44, 77, 22, 55, 88}
    View Code

    update(self*args, **kwargs)

    "更新,将b集合更新到a集合,相当于合并"(b集合)

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 a = {44,55,66,77,88}
    4 b = {44,55,11,22,33}
    5 #更新,将b集合更新到a集合,相当于合并
    6 a.update(b)
    7 print(a)
    8 #输出
    9 #{33, 66, 11, 44, 77, 22, 55, 88}
    View Code
  • 相关阅读:
    Linux常用命令琐记
    JDK 在linux下支持epoll了
    八卦
    JDK 1.6中的并发
    关于Atomic
    关于并发程序设计(二)
    关于并发程序设计 (一)
    Herb Sutter的一些观点
    想到Exchanger N parties的一种用法
    该拒绝MSN Messager了
  • 原文地址:https://www.cnblogs.com/zjltt/p/6836445.html
Copyright © 2020-2023  润新知