简析python中的集合
一、集合
1、集合:set,把不同元素组成一起形成集合,
是pthon基本的数据类型,是无序且不重复,
特点是数据元素唯一、无序且不可变
set(可变)
frozenset(不可变)元组和字符串也不可变
>>> set1 = {1,2,3,4,5,6}
>>> set1 = {1,2,3,4,5,6,7}
>>> set1
{1, 2, 3, 4, 5, 6, 7}
>>> type(set1)
>>> set2 = frozenset([1,2,3,4,5])
>>> set2
frozenset({1, 2, 3, 4, 5})
2、更新集合
set.add()
>>> set1.add(8)
>>> set1
{1, 2, 3, 4, 5, 6, 7, 8}
>>> set2.add(4) #不可变集合不可添加
Traceback (most recent call last):
File "
AttributeError: 'frozenset' object has no attribute 'add'
set.update()
update只能接收一个序列,
那么会将序列集合里的数据拆分成单个元素
>>> set1.update(5)
Traceback (most recent call last):
File "
TypeError: 'int' object is not iterable
>>> set1.update([5])
这样没报错
>>> set1.update("add")
>>> set1
{1, 2, 3, 4, 5, 6, 7, 8, 'a', 'd'}
去重了
>>> set1.add('adddddbf')
>>> set1
{1, 2, 3, 4, 5, 6, 7, 8, 'a', 'adddddbf', 'd'}
>>> set1.update('adddddbf')
>>> set1
{1, 2, 3, 4, 5, 6, 7, 8, 'a', 'adddddbf', 'd', 'b', 'f'}
>>>
2、访问集合
集合是无序的无法通过索引和切片的方法去访问其中的值
但是可以通过循环迭代的方式如下所示
>>> for set in set1:
... print(set)
...
1
2
3
4
5
6
7
8
a
adddddbf
d
b
f
3、删除集合中的元素
pop函数
从集合中删除并且返回一个任意元素
并且当集合是空的时候pop是会出一个KeyError的错误
>>> set1 = {1,2,3,4}
>>> set1
{1, 2, 3, 4}
>>> set1.pop()#删除的是任意的
1
clear函数
把集合里的数据对象都删除掉
>>> set1.clear()
>>> set1
set()
remove函数
从集合中删除对象,必须是一个成员
如果我们没有这个成员,会引发一个KeyError
>>> set1 = {1,2,3,4}
>>> set1.remove(1)
>>> set1
{2, 3, 4}
>>> set1.remove(2)
>>>
>>> set1.remove(5)
Traceback (most recent call last):
File "
KeyError: 5
discard函数
删除一个数据对象,如果他是集合的成员
如果说你这里没有这个成员,不会报错,什么都不做
>>> set1 = {1,2,3,4}
>>> set1.discard(1)
>>> set1
{2, 3, 4}
>>> set1.discard(5)
>>> set1
{2, 3, 4}
我们可以通过帮助来查询
>>> dir(set1)#输出信息太长就不列举了
查询帮助文档可以通过
help(集合名.查询出来的函数名)
help(set1.pop)
3、查询是否在
in 和 not in
>>> set1
{2, 3, 4}
>>> 1 in set1
False
使用in和not是效率很高的,
因为凡是对hash表进行查找工作,
要比普通序列查找要效率快的。
*********************************
**当才华撑不起野心的时候**
******静下心来学习吧!******
*********************************