增
# 创建空集合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}# 判断两个集合是否包含相同元素 Falseprint('判断两个集合是否包含相同元素', x.isdisjoint(y)) # 有则返回false,没有则返回true# 判断两个集合是否包含相同元素 Falseprint('判断y集合是否完全是x子集', y.issubset(x)) # 都包含则返回True,没有则返回false# 判断两个集合是否包含相同元素 Falseprint('判断y集合是否完全包含在x集合中', x.issuperset(y)) # 如果都包含返回 True,否则返回 False# 判断两个集合是否包含相同元素 Falseprint('返回两个集合中不重复的元素', 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 用户定义的类型默认可哈希
