集合
python的集合本身是可变类型,但集合中的元素必须是不可变类型。与列表和元组相比,集合的特点是元素无序且必须唯一
创建集合
集合的表现形式为一组包含在大括号“{}”中、由英文逗号“,”分隔的元素。使用大括号可以直接创建集合,示例代码:
s1 = {1} # 创建包含一个元素的集合
s2 = {1,'b',(2,3)} # 创建包含多个元素的集合
使用内置函数set()也可以创建集合,如果该函数的参数列表为空,则创建的是一个空集合;如果为该函数传入一个可迭代对象,则创建为非空集合,示例代码:
s = set() # 空集合
s1 = set([1,2,3]) # 根据列表创建集合
s2 = set((4,5,6)) # 根据元组创建集合
s3 = set('python') # 根据字符串创建集合
s4 = set(range(5)) # 根据range()函数的返回的结果创建集合
集合的常见操作
集合是可变的,集合中的元素可以动态增加或删除。以下是常见的操作方法:
1.add(x)
功能:向集合中添加元素 x,x 已存在时不做处理
代码:s = {1,2,3}; s.add (4); print (s); s.add (2); print (s)
运行结果:{1,2,3,4};{1,2,3,4}
2.remove(x)
功能:删除集合中的元素 x,若 x 不存在则抛出 KeyError 异常
代码:s = {1,2,3}; s.remove (2); print (s)
运行结果:{1,3}
3.discard(x)
功能:删除集合中的元素 x,若 x 不存在不做处理
代码:s = {1,2,3}; s.discard (2); print (s); s.discard (4); print (s)
运行结果:{1,3};{1,3}
4.pop()
功能:随机返回集合中的一个元素,同时删除该元素;集合为空抛 KeyError
代码:s = {1,2,3}; pop_elem = s.pop (); print ("弹出:",pop_elem); print ("集合:",s)
运行结果(示例):弹出:1;集合:{2,3}
5.clear()
功能:清空集合
代码:s = {1,2,3}; s.clear (); print (s)
运行结果:set ()
6.copy()
功能:复制集合,返回值为集合
代码:s = {1,2,3}; s_copy = s.copy (); s.add (4); print (s); print (s_copy)
运行结果:{1,2,3,4};{1,2,3}
7.isdisjoint(T)
功能:判断当前集合和 T 是否无相同元素,无则返回 True,否则 False
代码:s1={1,2,3}; s2={4,5,6}; s3={3,4}; print (s1.isdisjoint (s2)); print (s1.isdisjoint (s3))
运行结果:True;False
集合推导式
集合推导式与列表推导式的格式相似,区别在于集合推导式外侧为大括号“{}”,其语法格式如下:
{表达式 for 临时变量 in 目标对象 if 判断条件}
以上语法格式中遍历的目标对象可以是集合或其他可迭代对象