set集合
- 用{}表示,其中的元素是“无序的”“不重复的”,重复的元素只会显示一个
- 空集合必须用ser()创建
创建
j_c0 = {1, 2, 3, 4, 6}
j_c1 = {i for i in j_c0}
print(j_c1)
j_c2 = {i for i in j_c0 if i % 2 == 0}
print(j_c2)
j_c3 = {i**2 for i in j_c0}
print(j_c3)
增
- .add(),.update()
- .add()向原集合中添加单个新元素
- .update()向原集合中添加一个可迭代的组合
j_z0 = {1, 2, 3, 4, 5}
j_z0.add(10)
print(j_z0)
print(id(j_z0))
j_z0.update({13, 14})
print(j_z0)
print(id(j_z0))
删
- .clear(),.remove(),.discard()
- .remove() 删除单个元素时,如果元素不存在,会报错。
- .discard() 删除单个元素时,如果元素不存在,不会报错
- .pop() 随机删除一个元素,返回值是删除的元素
集合间的操作
交集:
- .intersection() 返回新生成的集合
- .intersection_update() 无返回值,在元集合上操作
j_m0 = {1, 2, 3, 4}
j_m1 = {3, 4, 5, 6}
j_m2 = {3, 4, 5, 6}
print(id(j_m0))
print(id(j_m0.intersection(j_m1, j_m2)))
print(j_m0.intersection(j_m1, j_m2))
j_m0 = {1, 2, 3, 4}
j_m1 = {3, 4, 5, 6}
j_m2 = {3, 4, 5, 6}
print(id(j_m0))
j_m0.intersection_update(j_m1, j_m2)
print(j_m0)
print(id(j_m0))
差集:
- .difference() 返回新生成的集合
- .difference_update() 无返回值,在元集合上操作
- 可使用“-”操作
j_m0 = {1, 2, 3, 4}
j_m1 = {3, 4, 5, 6}
print(j_m0 - j_m1)
并集
- .union 返回新生成的集合
- 无_update函数,不能使用“+”操作
j_m0 = {1, 2, 3, 4}
j_m1 = {3, 4, 5, 6}
print(id(j_m0))
print(j_m0.union(j_m1))
补集
- .symmetric_difference() 返回新生成的集合
- .symmetric_difference_update 无返回值,在元集合上操作
冰冻集合
j_m0 = {1, 2, 3, 4}
print(j_m0)
print(frozenset(j_m0))
p = {1:"we", 2:45}
print(str(p))