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 >>>