• 集合


    3.5.6 集合 关键字 set

    存储数据 天然去重 无序 不能使用下标

    内容为不可变数据 没有值的字典

    set('123') 迭代添加

    se = {1,2,3,4,5,1,2,3,6,7}
    print(se)
    

    输出结果:{1, 2, 3, 4, 5, 6, 7}

    面试题:用一行代码去重

    lst = [1,2,3,1,2,3,4,5,6]
    print(list(set(lst)))
    

    输出结果:[1, 2, 3, 4, 5, 6]

    3.5.6.1 增

    1. add 只能添加一个
    se = {1,2,3,4,5,6}
    se.add(7) #重复的内容不会被添加  随机添加
    print(se)
    
    1. update 迭代添加
    se = {1,2,3,4,5,6}
    se.update('你好') #可迭代对象    随机添加
    print(se)
    

    输出结果:{1, 2, 3, 4, 5, 6, '好', '你'}

    3.5.6.2 删

    1. se.clear() set() 空集合
    2. se.pop() 随机删除,有返回值,返回被删除的值
    3. se.remove() 可以指定删除,通过内容删除

    3.5.6.3 改

    没有办法直接修改,先删再加

    3.5.6.4 查

    for 循环

    3.5.6.5 常用操作

    s1 = {1,2,3,4}
    s2 = {4,5,6}
    print(s1 & s2)  # 交集
    print(s1 | s2)  # 并集
    print(s1 - s2)  # 差集
    print(s1 ^ s2)  # 反交集
    print(s1 < s2)  # 子集   判断s1是不是s2的子集
    print(s1 > s2)  # 超集   判断s1是不是s2的超集
    

    输出结果:

    {4}
    {1, 2, 3, 4, 5, 6}
    {1, 2, 3}
    {1, 2, 3, 5, 6}
    False
    False

    3.5.6.6 frozenset

    set集合本身是可以发生改变的数据类型,是不可哈希的,我们可以使用frozenset来保存数据,frozenset是不可变的,也就是个可哈希的数据类型

    s = frozenset(["赵本山", "刘能", "长桂"])
    dic = {s:'123'} # 可以正常使用了
    print(dic)
    

    输出结果:

    {frozenset({'刘能', '赵本山', '长桂'}): '123'}

  • 相关阅读:
    bzoj 1004 burnside 引理+DP
    bzoj 3453 数论
    HDU 2899 三分
    HDU 2199 二分
    bzoj 3450 DP
    bzoj 1197 DP
    bzoj 2121 DP
    bzoj 2258 splay
    bzoj 1296 DP
    Memcached的限制和使用建议
  • 原文地址:https://www.cnblogs.com/lav3nder/p/11801321.html
Copyright © 2020-2023  润新知