集合(set)
集合介绍
集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素,是可变数据类型。
集合数据类型的核心在于自动去重。
集合创建
集合使用{}框定元素,并以逗号进行分隔。
集合的样式: se_1 = {a, b}
s = {ele1, ele2, ele3…}
s = set()
s = set(可迭代对象)
注意⚠️
如果直接 s = {}
创建的是字典(dict)形式。
s1 = set()
这样才是创建了空的集合。
同时set()括号内可添加可迭代对象。
s2 = set([1, 2,3,1,2,3,12,3])
打印结果为 {1, 2, 3, 12} 集合自动去重来。
s3 = set(“hello world”)
打印结果为{‘o’, ‘r’, ‘w’, ‘d’, ‘l’, ‘h’, ’ ', ‘e’}可以发现集合是无序排列,并且全部拆开。
集合添加元素set.add(key)
set.add(key):添加元素到set中
s = set([1, 2, 3, 4, 5])
s.add(3)
会发现没有效果,因为添加的3这个元素在s中原本就存在所以自动去重。
s.add(8)
打印结果发现:{1,2,3,4,5,8}添加成功了。
集合能够容纳各种数据类型
s.add(“amy”)
打印结果{1,2,3,4,5,8,‘amy’}
注意⚠️
同字典的key值一样只能添加不可变数据类型,列表这样的可变数据类型,会报错。
集合更新set.update()
set.update()方法:将另一个对象更新到已有的集合中,这一过程同样会进行去重。
s = {1,2,3,4,5}
s.update(‘hello’)
打印结果{1,2,3,4,5,‘h’,‘e’,‘o’,‘l’}
删除元素set.remove(key)/set.pop()
set.remove(key):删除指定元素
s = {1,2,3,4,5}
s.remove(4)
打印结果:{1,2,3,5}
s.remove(“Amy”)
打印结果:报错
小结:remove需要填写元素,就删除指定元素。
但是,如果是不存在的元素则会报错。
set.pop():随机删除元素(注意:无参数)
s = set(“hello world”)
s.pop()
打印结果:随机显示剩下的元素。同时,随机删除元素。
每次显示的打印结果都不一。
注意⚠️:集合不能取出某个元素,因为集合既不支持下标索引,也不支持字典那样通过键值对获取。
集合是无序的,所以没有下标。
可变、不可变数据总结
可变:改变数据本身,但是内存地址不改变。
不可变:改变数据内存地址会改变。
内存地址查询函数: id()
可变类型
列表(list):下标修改
字典(dict):键值对修改
集合(set):不可修改
不可变类型
数值:整数、浮点数、复数、bool
字符串:可以下标索引。
字节:b‘ ’
元组:(,)