• python课堂整理7---集合


    前面小节:

    sep 用来控制每个元素间的间隔符号

    print("alex", "dabai", "liu", sep = "")
    

    按可变不可变:

    1.可变:列表,字典

    2.不可变:字符串, 数字, 元组

    修改了变量的值,而id号跟着改变,即不可变类型

    name = 'alex'
    print(id(name))
    name = 'sb'
    print(id(name))
    

    按访问顺序:

    1.顺序访问:字符串, 列表, 元组

    2.映射:字典

    3.直接访问:数字

    存放元素个数:

    容器类型:列表,元组, 字典

    原子:数字,字符串

    #################集合 ###################

    一、集合  set

    1.不同的元素组成

    2.无序

    3.集合中元素必须是不可变类型

    s = {1, 2, 3, 4, 5}

    内置函数:set()   也有简单的去重作用,不在意顺序的话

    s = set('hello')
    print(s)
    s1 = set(["alex", "alex", "sb"])
    print(s1)
    

    二、集合的魔法

    1. add,  向集合添加元素(只能更新一个)

    s = {1, 2, 3, 4, 5, 6}
    s.add('alex')
    print(s)
    

    2. clear 清空集合

    s.clear()
    

    3. 拷贝集合

    s1 = s.copy()
    

    4. pop随机删除元素

    s = {1, 2, 3, 4, 5, 6}
    v = s.pop()
    print(s,v)
    

    5. remove 指定元素删除,删除元素不存在时会报错

    s = {1, 2, 3, 4, 5, 6}
    s.remove(3)
    print(s)
    

    6. discard 指定元素删除,但是要删的元素不存在也不会报错

    s = {1, 2, 3, 4, 5, 6}
    s.discard(5)
    print(s)
    

    7. 交集

    s1 = {1, 2, 3}
    s2 = {2, 3, 4, 6}
    n = s1.intersection(s2)
    print(n)
    

    或者:&

    s1 = {1, 2, 3}
    s2 = {2, 3, 4, 6}
    n = s1 & s2
    print(n)
    

    8. 并集

    s1 = {1, 2, 3}
    s2 = {2, 3, 4, 6}
    n = s1.union(s2)
    print(n)
    

    或者:|

    s1 = {1, 2, 3}
    s2 = {2, 3, 4, 6}
    n = s1 | s2
    print(n)
    

    9.求差集(s1 中有而s2中没有)

    s1 = {1, 2, 3}
    s2 = {2, 3, 4, 6}
    n = s1.difference(s2)
    print(n)
    

    或者:-

    s1 = {1, 2, 3}
    s2 = {2, 3, 4, 6}
    n = s1 - s2
    print(n)
    

     10.交叉补集(s1 和 s2 的全部,减去两者的交集)

    s1 = {1, 2, 3}
    s2 = {2, 3, 4, 6}
    n = s1.symmetric_difference(s2)
    print(n)
    

    或者   ^

    s1 = {1, 2, 3}
    s2 = {2, 3, 4, 6}
    n = s1 ^ s2
    print(n)
    

    11.更新差集

    s1 = {1, 2, 3}
    s2 = {2, 3, 4, 6}
    s1.difference_update(s2)
    s1 = s1 - s2
    print(s1)
    print(s1)
    

    12. s1 是否是s2的子集

    s1 = {1, 2, 3}
    s2 = {1, 2, 3, 4, 6}
    n = s1.issubset(s2)
    print(n)
    

    13. s2是否是s1的父集

    s1 = {1, 2, 3}
    s2 = {1, 2, 3, 4, 6}
    n = s2.issuperset(s1)
    print(n)
    

    14. 更新多个值,参数可以是列表、元组等

    s1 = {1, 2, 3}
    s2 = {1, 2, 3, 4, 6}
    s1.update(s2)
    print(s1)
    

    15. 定义一个不可变的集合(不能增删改)

    s = frozenset("hello dabai")
    print(s)
    

    一个奋斗中的产品小白
  • 相关阅读:
    全网通5X_AL10 非定制版 固件汇总
    system.new.dat解压工具sdat2img
    linux 平台中 Android5.0的更新包中system.new.dat文件的解包
    【 henuacm2016级暑期训练-动态规划专题 A 】Cards
    【BZOJ 1486】 [HNOI2009]最小圈
    【BZOJ 1433】[ZJOI2009]假期的宿舍
    【BZOJ 1412】[ZJOI2009]狼和羊的故事
    【BZOJ 1305】[CQOI2009]dance跳舞
    【Codeforces Round #483 (Div. 2) C】Finite or not?
    【Codeforces Round #482 (Div. 2) C】Kuro and Walking Route
  • 原文地址:https://www.cnblogs.com/dabai123/p/10984879.html
Copyright © 2020-2023  润新知