Python学习-集合(set)

作者: 残阳夕露 | 来源:发表于2018-07-11 01:32 被阅读34次
    查看所有Python相关学习笔记

    集合(set)

    集合是随机的,其元素是不重复的

    自动去重

    set0 = {1,2,3,4}
    set1 = set([1,2,3,4])
    set2 = set((1,2,3,4,1,2,3))
    set3 = set('ddddsssdddaaddd')
    print(set1)
    print(set2)
    print(set3)
    # 执行结果
    {1,2,3,4}
    {1, 2, 3, 4}
    {1, 2, 3, 4}
    {'a', 'd', 's'}
    

    对列表去重

    先将列表转化为集合,再将集合转化为列表
    转化后的列表是无序的

    num1 = [1,2,3,5,3,2,1]
    print(f'去重前:{num1}')
    num1 = list(set(num1))
    print(f'去重后:{num1}')
    # 执行结果
    去重前:[1, 2, 3, 5, 3, 2, 1]
    去重后:[1, 2, 3, 5]
    

    使用in和not in判断元素是否存在

    num1 = set([1,2,3,5,3,2,1])
    print(f'原集合:{num1}')
    print(1 in num1)
    # 执行结果
    原集合:{1, 2, 3, 5}
    True
    

    使用for循环访问集合的值

    num1 = set([1,2,3,5,3,2,1])
    print(f'原集合:{num1}')
    for i in num1:
        print(i)
    # 执行结果
    原集合:{1, 2, 3, 5}
    1
    2
    3
    5
    

    使用add新增元素

    num1 = set([1,2,3,5,3,2,1])
    print(f'原集合:{num1}')
    num1.add(7)
    print(f'add后的集合:{num1}')
    # 执行结果
    原集合:{1, 2, 3, 5}
    add后的集合:{1, 2, 3, 5, 7}
    

    使用remove删除元素

    num1 = set([1,2,3,5,3,2,1])
    print(f'原集合:{num1}')
    num1.remove(1)
    print(f'remove后的集合:{num1}')
    # 执行结果
    原集合:{1, 2, 3, 5}
    remove后的集合:{2, 3, 5}
    

    定义一个冻结集合frozenset(不可变集合)

    num1 = frozenset([1,2,3,5,3,2,1])
    print(f'原集合:{num1}')
    # 执行结果
    原集合:frozenset({1, 2, 3, 5})
    
    • 尝试改变集合
    num1 = frozenset([1,2,3,5,3,2,1])
    print(f'原集合:{num1}')
    num1.remove(1)
    print(f'remove后的集合:{num1}')
    # 执行结果
    AttributeError: 'frozenset' object has no attribute 'remove'
    

    相关文章

      网友评论

        本文标题:Python学习-集合(set)

        本文链接:https://www.haomeiwen.com/subject/pijcpftx.html