Python数据类型: 集合类型
程序员文章站
2022-04-03 09:58:26
集合类型的定义方式: 在{}内逗号分隔多个元素,元素为不可变类型,不能重复,无序,所以没有索引s = {1.1, (1, 2), 11, 'hello'}集合类型转换, 集合类型不能取值, 如要取值, 可以再转换成列表类型再取值s = set([11, "hello", 1.1, (1, 2)])集合类型的常用操作集合的关系运算l1 = {1, 2, 3, 4, 5, 6}l2 = {2, 4, 6, 8, 10, 12}集合的关系运算 : 交集, 不考虑顺序res = l1 &am...
集合类型的定义方式: 在{}内逗号分隔多个元素,元素为不可变类型,不能重复,无序,所以没有索引
s = {1.1, (1, 2), 11, 'hello'}
集合类型转换, 集合类型不能取值, 如要取值, 可以再转换成列表类型再取值
s = set([11, "hello", 1.1, (1, 2)])
集合类型的常用操作
集合的关系运算
l1 = {1, 2, 3, 4, 5, 6}
l2 = {2, 4, 6, 8, 10, 12}
集合的关系运算 : 交集, 不考虑顺序
res = l1 & l2 # {2, 4, 6}
res = l1.intersection(l2) # 内置方法取交集, {2, 4, 6}
效果类似于for循环, 但是for有顺序, 还可以用于字符串,列表,元组,字典
l = []
for ll in l1:
if ll in l2:
l.append(ll)
print(l)
集合的关系运算 : 并集
res = l1 | l2 # {1, 2, 3, 4, 5, 6, 8, 10, 12}
res = l1.union(l2) # 内置方法取并集, {1, 2, 3, 4, 5, 6, 8, 10, 12}
集合的关系运算 : 差集
res1 = l1 - l2 # {1, 3, 5}
res1 = l1.difference(l2) # 内置方法差集, {1, 3, 5}
res2 = l2 - l1 # {8, 10, 12}
集合的关系运算 : 对称差集, 类似(l1 - l2) | (l2 - l1)
res = l1 ^ l2 # {1, 3, 5, 8, 10, 12}
res = l1.symmetric_difference(l2) # 内置方法对称差集,{1, 3, 5, 8, 10, 12}
集合的关系运算 : 父子集, 包含与被包含, 两个集合相等则互为父子
s1 = {1, 2, 3}
s2 = {1, 2}
print(s1 >= s2) # True, 包含
print(s1 > s2) # True, 包含
print(s1.issuperset(s2)) # True, 内置方法父子集
print(s2.issubset(s1)) # True, 内置方法父子集
内置方法: intersection_update, add, update, pop, remove, discard
s1 = {1, 2, 3}
s2 = {1, 2, 4, 5}
s1.intersection_update(s2) # 取交集后赋值s1 = {1, 2}
s1.add("hello") # 对比update, 一次只能加一个值
s1.update({2, 3, 4, 5}) # 新集合附加后去重,可以加多个值s1 = {1, 2, 3, 4, 5}
res = s1.pop() # 随机取走
s1.remove(3) # 删一个值, 没返回值, 删的元素不存在则报错
s1.discard(44) # 删的元素不存在也不报错
res = s1.isdisjoint(s2) # False, 两个集合没交集则返回True
本文地址:https://blog.csdn.net/iarchangel/article/details/107642384