• 集合(set)-Python3


    set 的 remove() 和 discard()  方法介绍。

    函数/方法名

      等价操作符 说明
    所有集合类型
    len(s)   集合基数:集合s中元素个数
    set([obj])   可变集合工厂函数:ojb必须是支持迭代的,由obj中的元素创建集合,否则创建一个空集合
    frozenset([obj])   不可变集合工厂函数:执行方式好set()方法相同,但它返回的是不可变集合
      obj in s 成员测试
      obj not in s 非成员测试
      s == t 等价测试
      s != t 不等价测试
      s < t (严格意义上)子集测试
    s.issubset(t) s <= t 子集测试
      s > t (严格意义上)超集测试
    s.issuperset(t) s >= t 超集测试
    s.union(t) s | t 合并操作
    s.intersec-tion(t) s & t 交集操作
    s.difference(t) s – t 差分操作
    s.symmetric_fifference(t) s ^ t 对称差分操作
    s.copy()   赋值操作:返回s的(浅复制)副本
    仅适用于可变集合
    s.update(t) s |= t (Union)修改操作:将t中的成员添加s
    s.intersection_update(t) s &= t 交集修改操作:s中仅包括s和t中共有的成员
    s.difference_update(t) s -= t 差修改操作:s中仅包括属于s但不属于t的成员
    s.symmetric_difference_ update(t) s ^= t 对称差分修改操作:s中包括仅属于s或仅属于t的成员
    s.add(obj)   加操作:将obj添加到s
    s.remove(obj)   删除操作
    s.discard(obj)   丢弃操作:remove()的友好版本,如果s中存在ojb,从s中删除它
    s.pop()   Pop操作:移除并返回s中的任意一个值
    s.clear()   清除操作:移除s中的所有元素

    for example:

    以下运行代码会报错,原因在于 第9行 remove()中的‘l’在集合中不存在

    而 discard()方法不会报错。

     1 # Code based on Python 3.x
     2 # _*_ coding: utf-8 _*_
     3 # __Author: "LEMON"
     4 
     5 names = ['lemon','zw','lr', 'lr']
     6 names_set = set(names)
     7 
     8 names_set.discard('lemo')
     9 names_set.remove('l')
    10 # Error: 'lr' is not in names_set
    11 print(names_set)

    正确的代码如下:

     1 # Code based on Python 3.x
     2 # _*_ coding: utf-8 _*_
     3 # __Author: "LEMON"
     4 
     5 names = ['lemon','zw','lr', 'lr']
     6 names_set = set(names)
     7 
     8 names_set.discard('lemo')
     9 names_set.remove('lr')
    10 # Error: 'lr' is not in names_set
    11 print(names_set)

    运行结果如下:

    1 {'lemon', 'zw'}
    作者:Lemon
    出处:个人微信公众号:“Python数据之道”(ID:PyDataRoad)和博客园:http://www.cnblogs.com/lemonbit/
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文出处,否则保留追究法律责任的权利。
  • 相关阅读:
    面试题
    iOS 对overflow:scroll使用
    iOS微信页面 长按图片出现【存储图像】和【拷贝】不出现【发送朋友】【保存图片】
    cookie设置和读取以及获取超链接参数
    学习资源链接
    gulp中文乱码问题
    原生ajax基础知识笔记
    Visual Studio Code 插件推荐
    前端开发中一些容易混淆的概念汇总
    jq中的类样式操作与html5中的类样式操作的对比
  • 原文地址:https://www.cnblogs.com/lemonbit/p/6239156.html
Copyright © 2020-2023  润新知