集合

集合是无序的,容器类的数据类型,包含的元素是不可变的(是可哈希的)不能包含字典/list等,但是集合本身是可变的。
  • 最重要的作用
    • 集合的去重
    • 关系测试(交集 & ,并集|, 差集 - ,反交集 ^)
# 集合创建set1 = set({'张三', '李四', False})
set1 = {'张三', '李四', False}
print(set1)  # 由于是无序的,每次打印的值不一样

print('空字典', type({})) # 空字典{}
print('空集合', type(set()))  # 空集合 set()
# 元素值不能直接更改,可以删除,在添加
# 增加元素
set1.add('王五')
print(set1)
set1.update('HELLO')  # 没有返回值
print(set1)  # {False, 'L', 'O', 'H', '张三', '王五', '李四', 'E'} 迭代着增加,天然去重,只有一个L

# 删除元素 按照元素删除,由于是无序的,所以不能按照索引删除
set1.remove(False)
# 随机删除
set1.pop()

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 交集 set1.intersection(set2)
t = (set1 & set2)
print(t)   # {4, 5}
# 并集 set1.union(set2)
print(set1 | set2)  # {1, 2, 3, 4, 5, 6, 7, 8}
# 差集 set1中有,set2中没有 set1.difference(set2) .
print(set1 - set2)  # {1, 2, 3}
# 反交集 set2.symmetric_difference(set1)
print(set1 ^ set2)  # {1, 2, 3, 6, 7, 8}


# 子集 set1.issubset(set2)
set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5, 6}
print(set1 < set2)
# 超级 set2.issuperset(set1)
print(set2 > set1)


# 列表的去重, 但是返回的是无序的,如果还要按照之前的顺序 就不能用set了
l = [1, 5, 3, 1, 2, 5]
s = set(l)
l = list(s)
print(l)   # [1, 2, 3, 5]

posted on 2020-04-16 17:44  黑桃Q  阅读(99)  评论(0编辑  收藏  举报

导航