python set 常用方法
def test_set():
"""
测试set的基本操作
"""
_list = list(range(9))
_list.append(8) # 添加一个元素到列表中
print("_list:", _list)
var_set = set(_list) # java-set
var_set.add(1) # set 可以自动去重元素
print("var_set:", var_set)
copy_set = var_set.copy() # 复制集合
var_set.pop() # 删除集合中的一个元素
print("var_set after pop:", var_set)
print("copy_set:", copy_set)
var_set.discard(1) # 删除集合中的元素,如果不存在则不报错
print("var_set after discard 1:", var_set)
difference_set = copy_set.difference(var_set) # 取差集
print("var_set after difference with copy_set:", difference_set)
intersection_set = var_set.intersection(copy_set) # 取交集
print("var_set交集copy_set:", intersection_set)
print("var_set:", var_set, 'difference_set:', difference_set)
copy_set.difference_update(difference_set) # 从集合中删除与 copy_set 中相同的元素, 差集
print("copy_set从集合中删除与 difference_set 中相同的元素 copy_set:", copy_set)
var_set.add(9) # 添加一个元素到集合中
print("var_set after add 9:", var_set)
var_set.intersection_update(copy_set) # 更新集合为与 copy_set 的交集
print("var_set更新集合为与 copy_set 的交集:", var_set)
var_set.add(11) # 添加一个元素到集合中
print("---var_set:", var_set, 'copy_set:', copy_set)
union_set = var_set.union(copy_set) # 并集
print("==var_set与copy_set 并集:", union_set)
# var_set.remove(9) # 删除集合中的元素,如果不存在则报错
# print("var_set after remove 9:", var_set)
print("----var_set:", var_set, 'copy_set:', copy_set)
copy_set.update(var_set) # 更新集合,添加差集中的元素
print("===copy_set 更新集合,添加差集中的元素copy_set:", copy_set)
var_set.add(33) # 添加一个元素到集合中
copy_set.add(22) # 添加一个元素到集合中
print("---var_set:", var_set, 'copy_set:', copy_set)
symmetric_difference_set = var_set.symmetric_difference(copy_set) # 对称差集 (只保留两个集合中独有的元素 , 即各自有但不重复的元素)
print("=== var_set对称差集copy_set:", symmetric_difference_set)
var_set.symmetric_difference_update(copy_set) # 对称差集更新 (只保留两个集合中独有的元素 , 即各自有但不重复的元素)
print("===var_set对称差集更新copy_set:", var_set)
isdisjoint = var_set.isdisjoint(copy_set) # 是否 没有 交集 (即没有共同的元素)
print("isdisjoint:", isdisjoint)
print("----intersection_set:", intersection_set, 'copy_set:', copy_set)
issubset = intersection_set.issubset(copy_set) # intersection_set是否是copy_set的子集 (即是否所有元素都在 copy_set 中)
print("issubset:", issubset)
issuperset = copy_set.issuperset(intersection_set) # copy_set是否是intersection_set的超集 (即是否包含 intersection_set 中的所有元素)
print("issuperset:", issuperset)
dict_data = {"a": 1, "b": 2}
key_set = set(dict_data) # 获取 key 的集合
print("dict_data keys as set:", key_set)
# 集合推导式
words = {"apple", "banana", "cat"}
vowels = {"a", "e", "i", "o", "u"}
# 生成一个新的集合,包含 words 中的所有包含元音字母的单词
contains_vowel = {word for word in words if any(c in vowels for c in word)}
print(contains_vowel)
结果
_list: [0, 1, 2, 3, 4, 5, 6, 7, 8, 8]
var_set: {0, 1, 2, 3, 4, 5, 6, 7, 8}
var_set after pop: {1, 2, 3, 4, 5, 6, 7, 8}
copy_set: {0, 1, 2, 3, 4, 5, 6, 7, 8}
var_set after discard 1: {2, 3, 4, 5, 6, 7, 8}
var_set after difference with copy_set: {0, 1}
var_set交集copy_set: {2, 3, 4, 5, 6, 7, 8}
var_set: {2, 3, 4, 5, 6, 7, 8} difference_set: {0, 1}
copy_set从集合中删除与 difference_set 中相同的元素 copy_set: {2, 3, 4, 5, 6, 7, 8}
var_set after add 9: {2, 3, 4, 5, 6, 7, 8, 9}
var_set更新集合为与 copy_set 的交集: {2, 3, 4, 5, 6, 7, 8}
—var_set: {2, 3, 4, 5, 6, 7, 8, 11} copy_set: {2, 3, 4, 5, 6, 7, 8}
==var_set与copy_set 并集: {2, 3, 4, 5, 6, 7, 8, 11}
----var_set: {2, 3, 4, 5, 6, 7, 8, 11} copy_set: {2, 3, 4, 5, 6, 7, 8}
===copy_set 更新集合,添加差集中的元素copy_set: {2, 3, 4, 5, 6, 7, 8, 11}
—var_set: {33, 2, 3, 4, 5, 6, 7, 8, 11} copy_set: {2, 3, 4, 5, 6, 7, 8, 11, 22}
=== var_set对称差集copy_set: {33, 22}
===var_set对称差集更新copy_set: {33, 22}
isdisjoint: False
----intersection_set: {2, 3, 4, 5, 6, 7, 8} copy_set: {2, 3, 4, 5, 6, 7, 8, 11, 22}
issubset: True
issuperset: True
dict_data keys as set: {‘a’, ‘b’}
{‘cat’, ‘banana’, ‘apple’}
更多推荐


所有评论(0)