集合常用的方法
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 >>>