一、什么是集合
1、定义集合
集合(set)是一个无序的不重复元素序列
2、创建集合
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
>>> myset = set()
>>> print(myset)
set()
>>> print(type(myset))
>>> myset2 = {1, 2, 3, 4}
>>> print(myset2)
{1, 2, 3, 4}
>>> print(type(myset2))
>>> myset3 = {}
>>> print(type(myset3))
3、集合的特点:不重复的、无序的、确定性的,所以会自动去重
>>> myset = set([1, 2, 3, 1, 2, 3, 4, 5, 6, 6, 5])
>>> print(myset)
{1, 2, 3, 4, 5, 6}
二、集合是查询、添加、修改和删除
1、查询:集合无法通过下标索引查询
2、添加单个元素add(x) ,添加单个或多个元素s.update( x ),x 有多个用逗号,分开。
>>> myset1 = {1, 2, 3, 4}
>>> myset1.add(9)
>>> print(myset1)
{1, 2, 3, 4, 9}
>>> myset1.update('5', '6')
>>> print(myset1)
{2, 4, 5, 6, 7, 8, 9, '5', '6'}
3、修改:集合是不可变类型无法修改元素;
可以获取交集、差集、对称差集
intersection获取2个set的交集
>>> myset1 = {1, 2, 3, 4}
>>> myset2 = {2, 4, 5, 6, 7, 8}
>>> print(myset2.intersection(myset1))
{2, 4}
difference获取2个set的差集
>>> myset1 = {1, 2, 3, 4}
>>> myset2 = {2, 4, 5, 6, 7, 8}
>>> print(myset2.difference(myset1))
{8, 5, 6, 7}
symmetric_difference对称差集,获取两个set互相没有的值
>>> myset1 = {1, 2, 3, 4}
>>> myset2 = {2, 4, 5, 6, 7, 8}
>>> print(myset2.symmetric_difference(myset1))
{1, 3, 5, 6, 7, 8}
可使用union合并多个set
>>> myset1 = {1, 2, 3, 4}
>>> myset2 = {2, 4, 5, 6, 7, 8}
>>> print(myset1.union(myset2))
{1, 2, 3, 4, 5, 6, 7, 8}
4、删除
discard (x)删除集合中指定的元素,set当中没有的话不会报错
>>> myset = {"1", "a", "b", "c", "w"}
>>> myset.discard("a")
>>> print(myset)
{'c', 'b', '1', 'w'}
remove(x)删除元素,remove的元素在set当中没有的话会报错,而discard不会
>>> myset = {"1", "a", "b", "c", "w"}
>>> myset.remove(2)
>>> print(myset)
Traceback (most recent call last):
File "E:\myset.py", line 2, in
myset.remove(2)
KeyError: 2
>>> myset.remove("w")
>>> print(myset)
{'c', 'b', '1', 'a'}
pop()方法用于随机移除一个元素
>>> myset = {"1", "a", "b", "c", "w"}
>>> myset.pop()
>>> print(myset)
{'c', 'b', 'a', 'w'}