Skip to main content

05-集合

# 集合的定义:花括号包围元素,每个元素间用逗号来隔开,python中的集合就是指set
# 定义:直接 {}
s1 = {10, 20, 30}
print(type(s1))
print(s1)

# 定义:用 set()
s2 = set('abcdef')
print(type(s2))
print(s2)

# 定义一个空集合 只能用set(),因为 {} 是用来创建空字典的
s3 = set()
s4 = {} # 系统认为这是在定义一个空字典
print(type(s3))
print(type(s4))
# 集合的特点:
# a.集合中的数值不重复,这一点与Java中的set类似
# b.集合是无序的,因此不支持通过下标的方式来取值(因为无序,所以每次同一个下标可能获取到的值不同)
# c.可以用于元组或者列表的去重
s5 = {1, 2, 3, 2, 5}
print(s5)
s6 = {('t1', 't1', 't2'), 1, 0.5, 'a'}
print(s6)
tup = ('t1', 't1', 't2')
s7 = set(tup) # 将元组转化为集合
print(s7)
# 集合的常见操作
# 一、增
# 1.add()
s1 = {10, 20}
s1.add(30)
print(s1)

# 2.update(),追加的数据必须是可迭代对象(如列表、集合、字典、元组、字符串)
s3 = {1, 2}
s3.update(3)
print(s3)
# 3.update(),追加的数据必须是可迭代对象(如列表、集合、字典、元组、字符串)
s4 = {1, 2}
s4.update('3') # 注意:字符串也是可迭代对象
s4.update([4]) # 列表
s4.update((5, 6)) # 元组
s4.update({7, 8}) # 集合
s4.update({'name': 'Tome', 'gender': '男'}) # 字典
print(s4)
# 把x和y合并,并且去重
x = {'apple', 'cherry', 'banana'}
y = {'google', 'apple', 'baidu'}
x.update(y)
print(x)
x.add(y) # 集合的add()方法添加具体某个元素
# 二、删除
# 1.remove(obj) 删除集合中指定的数据obj,如果数据不存在,则会报错
s1 = {1, 2}
s1.remove(1)
print(s1)
s1.remove(1)
print(s1)
# 2.discard(obj) 丢弃 删除集合中指定的数据,如果数据不存在不报错
s1 = {1, 2, 3, 5}
s1.discard(3)
print(s1)
s1.discard(3) # 数据不存在不报错
print(s1)
# 3.pop() 随机删除集合中的某个元素,并返回这个数据
s1 = {1, 2, 3, 5, 0.3, 'a', (4,9)}
del_num = s1.pop() # 会返回被删除掉的元素
print(del_num)
# 三、交集 &
s1 = {1, 2, 3, 5, 0.3, 'a', (4,9)}
s2 = {1, 3, 5, (4, 9)}
s3 = s1 & s2
print(s3)
# 四、并集 |
s1 = {1, 2, 3, 5, 0.3, 'a', (4,9)}
s2 = {1, 3, 5, (4, 9), 'f'}
s3 = s1 | s2 # 注意:Python中的集合本身是具有去重功能的,set()
print(s3)