开发者学堂课程【Python 语言基础 2:列表、元组、字典、集合:集合的介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/600/detail/8719
集合的介绍
内容简介:
1. 集合
2. 创建集合
3. 向集合中添加元素
4. 从集合中删除元素
一、 集合
集合(set),和列表非常相似,都是直接向对象中存储数据,不同点在于:
1. 集合中只能存储不可变对象。例如字符串、数字、元组、none、TRUE、FALSE 都是可以存储的,但无法存储字典、列表。
2. 集合中存储的对象是无序的。这里的无序是相对于列表来说的。在列表中数据按照元素的插入顺序保存,存储的第n个数据会被放在索引为(n-1)的位置,而集合的无序指的是不按照元素的插入顺序保存,并不是真的完全无序。由于存储顺序与插入顺序无关,故无法根据索引查找数据。
3. 集合中不能出现重复的元素。即集合中的元素都是唯一的。在 P ython 标准库中(docs.python.org/3/library/stdtypes.html)有关于集合的更多详细信息。
二、 创建集合
创建集合有两种方法:使用{ }来创建集合、使用函数set( )函数创建集合。
1. 使用{ }来创建集合
s={1,2,3,4}
print(s,type(s))
结果为
{1,2,3,4},<class’set’>
可以发现输入顺序和存储顺序似乎一样,但我们来试一下另一组数据:
s={10,3,5,1,2}
print(s,type(s))
结果为
{1,2,3,5,10},<class’set’>
这也说明了集合的一大特点:集合中存储的对象是无序的。
当输入重复元素时,集合只会保存一个元素。
s={10,3,5,1,2,1,2,3,1,1,1,1}
print(s,type(s))
结果为
{1,2,3,5,10},<class’set’>
集合中无法保存可变对象,如列表、字典等。
s={[1,2,3],[4,6,7]}
print(s,type(s))
出现报错,TypeError:unhashable type:‘list’
2. 使用函数set( )函数创建集合
当需要创建一个空集合时,s={ } 并不是创建空集合的方法,此时创建的是一个字典。创建空集合就需要用到 set( )函数了。
s=set( )
#空集合
还可以通过 set( ) 将序列和字典转换成集合。
set({1,2,3,4,5,1,1,2,3,4,5})
s=set(‘hello’) #使用set( )将序列转换成集合
print(s,type(s))
结果为
{‘o’,’l’,’e’,’h’} <class’set’>
s=set({‘a’:1,’b’:2,’c’:3})
#使用 set( ) 将字典转换成集合,只会包含字典中的键
print(s,type(s))
结果为
{‘c’,’a’,’b’} <class’set’>
s=set({‘a’,’b’,1,2,3})
print(s,type(s))
结果为
{1,2,3,’a’,’b’} <class’set’>
集合无法通过索引进行操作,若使用索引对集合进行操作会报错。
出现报错,TypeError:’set’ object does not support indexing
print(list(s)[0])
还可以使用 in 和 not in 来检查集合中的元素、使用 len( ) 获取集合中元素的数量。
print(‘c’ in s)
结果为 FALSE
print(len(s))
结果为 5
三、 向集合中添加元素
可以使用 add( )向集合中添加元素,add( ) 是 没有返回值的。
s.add(10)
print(s,type(s))
结果为
{1,2,3,10,’a’,’b’} <class’set’>
update 将一个集合的元素添加到当前集合中。添加序列、字典也是可以的,需要注意的是,添加字典只会使用键。
s2=set( ‘’hello' )
s.update(s2)
print(s,type(s))
结果为
{
1, 'b',3, 2,'o',10,'a','l','h','e' } <class ' set'>
四、 从集合中删除元素
pop( ) 随机删除并返回集合中的一个元素。调用方法为 s.pop( )。如果想知道删除的是哪一个元素,可以使用 result。
result=s.pop( )
print(result)
remove( )
删除集合中的指定元素。
result=s.remove(100)
print(result)
clear( )
清空集合。
result=s.clear( )
print(result)
copy( )
对集合进行浅复制。