python学习之路---集合、copy

# 集合: 集合是无序的,所以无法修改,仅可以做增删查 三种操作,而且是不重复数据的的集合
# 集合有两个大特性:1、去重,将列表转换为集合后,会自动去重 2、关系测试:测试两组数据之间的交集差集、并集等关系

# 增 add() update()
# set1 = {'a',1,2,3,'b','c'}
# set1.add('d')
# print(set1) # 因为集合是无序的,所以添加位置随机
#
# set2 = {'a','5',5}
# set2.update(set1)
# print(set1)
# print(set2)  # 将集合1的内容添加到集合2中

#删 pop() 随机删除 有返回值, remove()指定删除 返回值为None,del 删除集合,clear 清空集合
# set3 = {'a',1,2,3,'b','c','11',11}
# msg = set3.pop()
# print(msg) # 打印返回值
# print(set3) # pop是随机删除,每次运行随机删除一个一个值
#
# msg1 = set3.remove(2) # remove 删除指定元素
# print(set3,msg1)
#
# set3.clear()
# print(set3)
#
# del set3 # del 直接删除集合,无法用del删除指定元素

# 查, 只能用for循环查,因为无序,所以无法查找指定位置的元素
# set4 = {'a',1,2,3,'b','c','11',11}
# for i in set4:
#     print(i)
# 集合的去重: 将列表转为集合即可
# li1 =['1',1,1,1,1,1,'1',2,2,2,2,3,3,3,3,]
# li1 = set(li1)
# print(list(li1))
#集合的关系,交集,并集,差集,反交集,子集和超集
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
#交集 用 & 或intersection
print(set1 & set2)
print(set1.intersection(set2))
#并集 用 | 或 union
print(set1 | set2)
print(set1.union(set2))
#差级 - 或 difference  取出set1与set2不同的元素并打印
print(set1 - set2)
print(set1.difference(set2))
#反交集 ^ 或 symmetric_difference 去除相同的部分,集合不同的元素并打印
print(set1 ^ set2)
print(set1.symmetric_difference(set2))
#子集和超集  只会返回布尔值,证明A是否为B的子集
A = {1,2,3}
B = {1,2,3,4,5}
print(A > B)
print(A < B) #这是子集,A是B的子集
print(B>A) #这是超集, B是A的超集

#frozenset 将集合转换为可哈希的数据类型,即不可变数据类型,转换后可以查询
C = frozenset(A)
print(A,type(A))
print(C,type(C))

猜你喜欢

转载自blog.csdn.net/chengyinman0078/article/details/84791558