一.废话不多说直接进入主题
1.集合的创建方式:
1:利用花括号 { } 创建集合
2:利用函数 set( )创建集合
set()函数也是python内置函数的其中一个,属于比较基础的函数,其中可以传入元组,列表等等作为参数,从而转为一个集合
代码如下:
# 第一种创建集合方法
c = {1, 23, True, 12.22, }
# 第二种创建集合的方法,如果不传入参数则表示创建一个空集合
# 创建一个空集合不能使用c2={}这样的形式,这个只能创建出
# 一个空的字典
tup01 = (222, 333, False)
c2 = set(tup01)
c3 = {}
print(type(c2)) # <class 'set'>
print(type(c3)) # <class 'dict'>
2.集合的相关操作
2.1集合元素的新增操作:
注:集合中不允许存在相同的元素,即使添加了相同的元素也不会抛出异常,只会保留唯一值。
创建集合的方式有两种:
1.调用add()方法, 一次添中-个元素
2.调用update()方法至少添中一个元素:可以将元组,列表,集合作等为参数传入该函数当中,使其添加多个元素
# add()添加元素
c1 = {1, 23, 4, 12, "me", "key", 12.5}
c1.add("NiuMa")
c1.add("NBA")
print(c1) # {1, 4, 12, 12.5, 'NiuMa', 23, 'key', 'NBA', 'me'}
# update()添加元素
c2 = {1, 2}
c2.update({1, 23, 4})
c2.update([222,333])
c2.update((1111,2222))
print(c2) # {1, 2, 4, 1111, 23, 2222, 333, 222}
2.2集合元素的删除操作
1.调用remove()方法, 一次删除一 个指定元素,如果指定的元素不存在抛出KeyError
2.调用discard()方法, 一次删除- -个指定元素,如果指定的元素不存在不抛异常”
3.调用pop()方法,一次只删除-个任意元素
4.调用clear(方法, 清空集合
c1 = {1, 23, 4, 12, "me", "key", 12.5}
# remove()
# c1.remove("22") 指定删除元素22不存在,抛出KeyError异常
c1.remove("key")
c1.remove("me")
print(c1) # {1, 4, 23, 12, 12.5}
# discard()
# c1.discard("22222") :使用discard()删除指定元素,
#当元素不存在的时候也不会抛出异常
c1.discard(12.5)
print(c1) # {1, 4, 23, 12}
# pop() :随机删除集合中一元素
print(c1) # {1, 4, 23, 12}
c1.pop()
print(c1) # {4, 23, 12}
# clear() :将集合中元素全部清除
print(c1) # {4, 23, 12}
c1.clear()
print(c1) # set() :表示空集合
3.集合之间的关系
3.1两个集合是否相等
●可以使用运算符==或!=进行判断
3.2一个集合是否是另一-个集合的子集,一个集合是否是另一个集合的超集
●可以调用方法issubset进行判断
●B是A的子集
●可以调用方法issuperset进行判断
●A是B的超集
3.3两个集合是否没有交集
●可以调用方法isdisjoint进行判断,没有交集换行True,有交集返回False
# 集合之间的关系
# 集合是否相等(== / !=)
a = {1, 2, 3, 4, 6666}
b = {1, 2, 3, 6666, 4}
print(a == b) # True
print(a != b) # False
# 一个集合是否是另一个的子集,以及是否是另一个的超集
a1 = {1, 2, 3, 4, 5, 6}
b2 = {1, 2, 3}
# 判断子集
print(b2.issubset(a1)) # True :b2是a1的子集
# 判断超集
print(a1.issuperset(b2)) # True :a1是b2的超集
# 判断两个集合是否有交集,没有交集换行True,有交集返回False
print(a1.isdisjoint(b2)) # False
4.集合之间的数学操作(交,并,差,对称差)
4.1.两个集合的并可以使用:union() , |
4.2 两个集合的交可以使用:intersection() , &
4.3 两个集合的差可以使用:difference , -
4.4 两个集合的对称差可以使用:symmetric_difference() , ^
总的来说:记住符号简单些:
案例代码如下:
# 集合之间的数学操作
a = {1, 2, 3, 4, 5, 6, 7, "A", "B", "C"}
b = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, "D", "E"}
# 两集合的并:union() , |
print(a.union(b)) # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'D', 'E', 'C', 'A', 'B'}
print(a | b) # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'D', 'E', 'C', 'A', 'B'}
# 两集合的交 : intersection() , &
print(a.intersection(b)) # {1, 2, 3, 4, 5, 6, 7}
print(a & b) # {1, 2, 3, 4, 5, 6, 7}
# 两集合的差 : difference , -
print(a.difference(b)) # {'C', 'B', 'A'}
print(a - b) # {'C', 'B', 'A'}
# 两集合的对称差: symmetric_difference() , ^
print(a.symmetric_difference(b)) # {8, 9, 10, 'E', 'B', 'A', 'C', 'D'}
print(a ^ b) # {8, 9, 10, 'E', 'B', 'A', 'C', 'D'}
5.集合生成式
语法:{关于元素i的表达式 for i in 可迭代对象 }
# 集合生成式
ls01 = [1, 2, 22, 33, 44, 55]
c1 = {i * 2 for i in range(1, 11)}
c2 = {i * 2 for i in ls01}
print(c1) # {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}
print(c2) # {2, 66, 4, 44, 110, 88}
本文介绍了Python中集合的创建,包括使用花括号和set()函数。详细阐述了集合的新增元素操作如add()和update(),以及删除操作remove()、discard()和pop()。此外,还讨论了集合间的关系,如相等、子集、超集的判断,以及无交集的检测。最后,讲解了集合的数学运算,如并集、交集、差集和对称差,并给出了集合生成式的示例。
906

被折叠的 条评论
为什么被折叠?



