• Python 学习笔记(十)Python集合(二)


    集合常用的方法

    add()       向集合中增加一个元素,如果集合中已经有了这个元素,那个这个方法就会失效

     1 >>> help(set.add)
     2 Help on method_descriptor:
     3 
     4 add(...)
     5     Add an element to a set.   #向集合中添加一个元素
     6 
     7     This has no effect if the element is already present. #集合中已经存在元素,则这个方式失效
     8 
     9 >>> a ={"baidu","google"}
    10 >>> type(a)
    11 <type 'set'>
    12 >>> a.add("weibo") #向集合a中添加元素
    13 >>> a
    14 set(['baidu', 'weibo', 'google'])
    15 >>> id(a)  #集合a在内存中的地址
    16 64656104L
    17 >>> a.add("ali") #向集合a中添加元素
    18 >>> a
    19 set(['baidu', 'weibo', 'google', 'ali'])
    20 >>> id(a) #集合a中的内存地址没有发生改变,是原地修改,是可变集合
    21 64656104L
    22 >>> a.add("google") #如果增加的元素在集合中存在,则不会做任何操作
    23 >>> b ={} #创建一个空的集合
    24 >>> b.add("python")
    25 Traceback (most recent call last):
    26   File "<stdin>", line 1, in <module>
    27 AttributeError: 'dict' object has no attribute 'add' #报错信息为字典中没有add函数
    28 >>> type(b)  #b是一个字典
    29 <type 'dict'>
    30 >>> b =set() #创建一个空集合
    31 >>> type(b)
    32 <type 'set'>
    33 >>> b.add("python") #向b中添加一个元素
    34 >>> b
    35 set(['python'])
    36 >>> b.add([1,2,3]) #向b中添加一个列表,报错列表是不可hash的,是可改变的
    37 Traceback (most recent call last):
    38   File "<stdin>", line 1, in <module>
    39 TypeError: unhashable type: 'list'
    40 >>> b.add((1,2,3)) #可以向集合中添加一个元素
    41 >>> b
    42 set(['python', (1, 2, 3)])
    43 >>>

    update() 更新

     1 >>> help(set.update)
     2 Help on method_descriptor:
     3 
     4 update(...)
     5     Update a set with the union of itself and others. #更新一个集合,用这个集合本身和另外 参数里面的内容转换为集合
     6 
     7 >>> a
     8 set(['baidu', 'weibo', 'google', 'ali'])
     9 >>> b
    10 set(['python', (1, 2, 3)])
    11 >>> a.update(b) #将集合b更新到a集合中
    12 >>> a
    13 set(['baidu', 'weibo', 'google', 'ali', 'python', (1, 2, 3)])
    14 >>> a.update("test")  #将一个字符串更新到集合a中
    15 >>> a
    16 set(['baidu', 'weibo', 's', 'google', 'e', 't', 'ali', 'python', (1, 2, 3)])
    17 >>>

    pop() 从集合中随机删除一个元素,并且把这个元素作为返回值,pop函数没有参数,不能指定元素

     1 >>> help(set.pop)
     2 Help on method_descriptor:
     3 
     4 pop(...)
     5     Remove and return an arbitrary set element. #从集合中移除一个元素,并且把这个元素返回
     6     Raises KeyError if the set is empty. #如果这个集合为空,那么会报错keyError
     7 
     8 >>> b
     9 set(['python', (1, 2, 3)])
    10 >>> b.pop()
    11 'python'
    12 >>> b
    13 set([(1, 2, 3)])
    14 >>>

    remove() 从集合中删除指定的元素,删除的元素必须是集合中的一员,如果不是,则会报错KeyError

     1 >>> help(set.remove)
     2 Help on method_descriptor:
     3 
     4 remove(...)
     5     Remove an element from a set; it must be a member. #从集合中删除指定的元素,删除的元素必须是集合中的一员
     6 
     7     If the element is not a member, raise a KeyError. #如果不是集合中的元素,则会报错KeyError
     8 
     9 >>> a
    10 set(['baidu', 'weibo', 's', 'google', 'e', 't', 'ali', 'python', (1, 2, 3)])
    11 >>> a.remove("s")
    12 >>> a
    13 set(['baidu', 'weibo', 'google', 'e', 't', 'ali', 'python', (1, 2, 3)])
    14 >>> a.remove("s")
    15 Traceback (most recent call last):
    16   File "<stdin>", line 1, in <module>
    17 KeyError: 's'
    18 >>>

    discard() 从集合中删除指定的元素,删除的元素必须是集合中的一员,如果不是,则不作任何操作

    与remove()类似,区别就是remove() 删除不是集合中的元素,则会报错。而discard()删除不是集合中的元素,则不会报错。

    示例:

     1 >>> help(set.discard)
     2 Help on method_descriptor:
     3 
     4 discard(...)
     5     Remove an element from a set if it is a member.
     6 
     7     If the element is not a member, do nothing.
     8 
     9 >>> a.discard("s")
    10 >>>

    clear() 删除集合中所有的元素

     1 >>> help(set.clear)
     2 Help on method_descriptor:
     3 
     4 clear(...)
     5     Remove all elements from this set.
     6 
     7 >>> a.clear()
     8 >>> a  #集合为一个空集合
     9 set([])
    10 >>>
  • 相关阅读:
    UIButton中setTitleEdgeInsets和setImageEdgeInsets的使用
    关于自定义导航条UIBarButtonItem偏移的问题
    iOS端使用二维码扫描(ZBarSDK)和生成(libqrencode)功能
    CocoaPods安装和使用教程
    IOS中NSUserDefaults的用法(轻量级本地数据存储) (转)
    UIPickerView简单选择器的基本使用
    [原]Unity手游之路&lt;三&gt; 基于Unity+Java的聊天室源码
    [原]UML建模语言进阶
    [原]Java多线程编程学习笔记之九:使用wait/notify/notifyAll实现线程间通信的几点说明
    [原]MySQL的表分区
  • 原文地址:https://www.cnblogs.com/wangruihua-521/p/8557072.html
Copyright © 2020-2023  润新知