增
# 创建空集合
set_instance = set()
print(set_instance)
"""
set()
"""
# 添加元素
set_instance.add('3')
print(set_instance)
"""
{'3'}
"""
# 复制一个集合
set2 = set_instance.copy()
print(set2)
"""
{'3'}
"""
删
# 删除集合元素
set_instance.remove('3333')
print(set_instance)
"""
{'33', '333', '3'}
"""
# 随机移除元素并返回
print(set_instance.pop())
"""
33
"""
# 删除指定元素
set_instance.discard('33')
print('删除指定元素后的集合为:', set_instance)
"""
删除指定元素后的集合为: {'333', '3'}
"""
# 清空集合
set_instance.clear()
print(set_instance)
"""
set()
"""
改
x = {'3333', '33', '333'}
set_instance.update(x)
print(set_instance)
"""
{'33', '333', '3', '3333'}
"""
集合的运算
x = {1, 3, 4, 5, 7}
y = {3, 4, 7}
# 求集合的差集
print('求集合的差集', x.difference(y)) # 求集合的差集 {1, 5}
# 求集合的并集
print('求集合的并集', x.union(y)) # 求集合的并集 {1, 3, 4, 5, 7}
# 求集合的交集
print('求集合的交集', x.intersection(y)) # 求集合的并集 {3, 4, 7}
# 判断两个集合是否包含相同元素 False
print('判断两个集合是否包含相同元素', x.isdisjoint(y)) # 有则返回false,没有则返回true
# 判断两个集合是否包含相同元素 False
print('判断y集合是否完全是x子集', y.issubset(x)) # 都包含则返回True,没有则返回false
# 判断两个集合是否包含相同元素 False
print('判断y集合是否完全包含在x集合中', x.issuperset(y)) # 如果都包含返回 True,否则返回 False
# 判断两个集合是否包含相同元素 False
print('返回两个集合中不重复的元素', x.symmetric_difference(y))
print(x and y) # {3, 4, 7}
print(y and x) # {1, 3, 4, 5, 7}
print(x - y) # {1, 5}
print(y - x) # set()
print(x or y) # {1, 3, 4, 5, 7}
print(y or x) # {3, 4, 7}
print(x ^ y) # {1, 5}
print(y ^ x) # {1, 5}
集合只能存放可哈希对象
对象的可哈希性: 字典和集合底层都是使用了哈希表数据结构,当把某个对象放进集合或者作为字典的键使用,解释器需要对该对象进行哈希计算,一般可通过内置函数hash(obj)判断对象是否可哈希。 所有的不可变内置类型都是可哈希的:str、int、tuple、frozenset等 所有的可变内置类型都是不可哈希的:dict、list 用户定义的类型默认可哈希