• python set 集合复习--点滴


    一、set特性:

    set是一个无序不重复的元素集合。

    集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键。集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小),用for循环迭代集合的成员。但是因为集合本身是无序的,不可以为集合创建索引或执行切片( slice)操作,也没有键(keys)可用来获取集合中元素的值。

    set和dict一样,只是没有value,相当于dict的key集合, 由于dict中的key是不重复的,且是不可变对象,因此set也有如下特性

    1.不重复

    2.元素为不可变对象

    二、 创建set集合

    >>> set('boy')
    set(['y', 'b', 'o'])
    >>>

     集合的添加

    添加:add()方法和update()方法,add()作为一个元素添加,update()单个元素添加。

    >>> n = set('boy')
    >>> n
    set(['y', 'b', 'o'])

    >>> n.add('python')
    >>> print n
    set(['y', 'python', 'b', 'o'])

    >>> n.update('ok')
    >>> n
    set(['y', 'python', 'k', 'b', 'o'])

    例子2:

    >>> se = {11,22,33}
    >>> be = {22,44,55}

    >>> se.update(be)
    >>> se
    set([33, 22, 55, 11, 44])

    >>> se.update([66,77])
    >>> print (se)
    set([33, 66, 22, 55, 11, 44, 77])

    >>> se.update('88')
    >>> se
    set([33, 66, 22, 55, '8', 11, 44, 77])

    集合的删除

    discard(),remove(),pop()

    se = {11, 22, 33}

    se.discard(11)

    se.discard(44) # 移除不存的元素不会报错

    print(se) se = {11, 22, 33}

    se.remove(11) se.remove(44) # 移除不存的元素会报错

    print(se)

    se = {11, 22, 33} # 移除末尾元素并把移除的元素赋给新值

    temp = se.pop() print(temp) # 33

    print(se) # {11, 22}

    取交集

    se = {11, 22, 33}

    be = {22, 55}

    temp1 = se.intersection(be) #取交集,赋给新值

    print(temp1) # 22

    print(se) # {11, 22, 33}

    temp2 = se.intersection_update(be) #取交集并更新自己

    print(temp2) # None

    print(se) # 22

    或者

    交集

    >>> se&be
    set([22])

    并集

    >>> se|be
    set([33, 11, 22, 55])

    差集

    >>> se-be
    set([33, 11])

    集合的转换

    >>> se = set(range(4))
    >>> li = list(se)
    >>> tu = tuple(se)
    >>> st = str(se)

    >>> print (li,type(li))
    ([0, 1, 2, 3], <type 'list'>)
    >>> print (tu,type(tu))
    ((0, 1, 2, 3), <type 'tuple'>)
    >>> print (st,type(st))
    ('set([0, 1, 2, 3])', <type 'str'>)

    判断 

    se = {11, 22, 33}

    be = {22}

    print(se.isdisjoint(be)) #False,判断是否不存在交集(有交集False,无交集True)

    print(se.issubset(be)) #False,判断se是否是be的子集合

    print(se.issuperset(be)) #True,判断se是否是be的父集合

  • 相关阅读:
    【Git】Git 学习笔记(一)
    【工程 Shell】Shell 学习(一)
    Vue 使用 Antd 简单实现左侧菜单栏和面包屑功能
    GoF的23种设计模式的功能
    ASP 对数据库的操作
    注册表修改USB状态(开与关)
    EXE文件关联修复
    CentOS8安装Docker
    GoogleEarth无法连接服务器解决方法
    【转】Qt 实现的拷贝 文件/文件夹 的函数
  • 原文地址:https://www.cnblogs.com/i1991/p/6894654.html
Copyright © 2020-2023  润新知