Python之集合操作举例

# 集合的操作(Set、frozenset)
# 集合特点:无序、元素不可重复、执行效率高但是比列表占用空间大,空间换时间

s = {"a", "b", "c"}
s = set("abcd")
print(s)  # {'d', 'b', 'c', 'a'}
print("a" in s)  # True

for each in s:
    print(each)

# 比较两个集合是否完全不同
print(s.isdisjoint("hello"))  # True,完全不同

# 子集
print("子集:", s.issubset("abcdef"))  # True,是子集
print(s < set("abcdef"))

# 超集
print("超集:", s.issuperset("abc"))  # True,是超集
print(s > set("abc"))

# 并集,支持多参数
print("并集:", s.union("ef"))  # {'c', 'a', 'f', 'e', 'd', 'b'}
print(s | set("ef"))  # {'f', 'c', 'd', 'b', 'a', 'e'}

# 交集,支持多参数
print("并集:", s.intersection("abefg"))  # {'a', 'b'}
print(s & set("abefg"))  # {'a', 'b'}

# 差集,支持多参数
print("差集:", s.difference("abef"))  # {'c', 'd'} 只返回s中的差异元素
print(s - set("abef"))  # {'c', 'd'} 只返回s中的差异元素

# 对称差集
print("对称差集:", s.symmetric_difference("abef"))  # {'d', 'c', 'f', 'e'} 返回所有的差异元素
print(s ^ set("abef"))  # {'d', 'c', 'f', 'e'} 返回所有的差异元素

# 不可变集合
print(frozenset("abcd"))  # frozenset({'c', 'd', 'a', 'b'})

# 修改、添加元素(并集更新)
s = set("ab")
s.update("cc", "de")
print(s)  # {'d', 'b', 'e', 'c', 'a'}

# 添加一个元素
s.add("fg")
print("add:", s)  # {'a', 'c', 'd', 'fg', 'b', 'e'}

# 删除
s.remove("fg")  # 删除,不存在报错
s.discard("e")  # 删除,不存在不报错
print("删除:", s)  # {'a', 'c', 'b', 'd'}

# 随意弹出一个元素
print(s.pop())  # b

# 清空集合
s.clear()

 

posted @ 2023-01-14 23:36  星瑞  阅读(73)  评论(0编辑  收藏  举报