python--组合数据类型

32 阅读2分钟

集合

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))
运行结果:TrueFalse

集合推导式

集合推导式与列表推导式的格式相似,区别在于集合推导式外侧为大括号“{}”,其语法格式如下:

{表达式 for 临时变量 in 目标对象 if 判断条件}

以上语法格式中遍历的目标对象可以是集合或其他可迭代对象