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 >>>
posted @ 2018-03-15 16:12  冰雪柔情的天空  阅读(226)  评论(0编辑  收藏  举报