Python集合set
两种集合的定义方法
定义集合的方法一:直接定义法
a = {1,2,3}
print(type(a))
<class 'set'>
特别注意空集合的定义法不同于列表、元组,因为Python默认 { } \{\} {}为字典,所以空集合的定义使用强转的方式。
a = {}
print(type(a))
<class 'dict'> #字典类型
定义集合的方法二:使用强转的方式定义
a = set({})
print(type(a))
集合的性质
集合具有元素不重复性、唯一性、无序性,所以集合不能够通过索引取值,经常使用强转集合的方式去重。
a = {1,1,1,1,2}
print(a)
{1, 2}
集合运算
集合属于可变类型,只能随机取值,若要精确取值则要转换为列表,属于散列类型。
& 交集 a&b
| 并集 a|b
- 补集 a-b b在a中的补集
交集运算
a = {1,2,3,4,5}
b = {2,3,4,5,6,7,8}
print(a & b)
{2, 3, 4, 5}
并集运算
a = {1,2,3,4,5}
b = {2,3,4,5,6,7,8}
print(a | b)
{1, 2, 3, 4, 5, 6, 7, 8}
补集运算
a = {1,2,3,4,5}
b = {2,3,4,5,6,7,8}
print(a - b)
{1}
集合的方法
add方法
#在原集合末尾添加元素
a = {1,2,3,4,5}
a.add(6)
print(a)
{1, 2, 3, 4, 5, 6}
update方法
#可以添加列表字符串和集合,若为字符串,则字符串拆为字符,单个添加
#使用update时候,必须是可迭代对象
a = {1,2,3,4,5}
a.update([7,8])
print(a)
a.update('12343')
print(a)
{1, 2, 3, 4, 5, 7, 8}
{1, 2, 3, 4, 5, 7, 8, '3', '4', '1', '2'}
pop方法
#随机删除,拿出来再删除,哈希算法,若为数字集合则从第一个元素删除
a = {1,2,3,4,5}
print(a.pop())
print(a.pop())
print(a.pop())
print(a.pop())
1
2
3
4
a = {'3', '4', '1', '2'}
print(a.pop())
print(a.pop())
print(a.pop())
print(a.pop())
4
1
2
3
remove方法
#删除某一个元素
a = {1,2,3,4,5}
a.remove(3)
print(a)
{1, 2, 4, 5}
isdisjoint方法
#判断是否有交集 a.isdisjoint(c) a里面有没有c吗?
a = {1,2,3,4,5}
b = {6}
c = {6,3,7}
print(a.isdisjoint(b))
print(a.isdisjoint(c))
True
False
issubset方法
#判断是否是子集 a.issubset(c) a是c的子集吗
a = {6}
b = {1,2,3,4,5}
c = {6,3,7}
print(a.issubset(b))
print(a.issubset(c))
False
True
a = {1,2,3,4,5}
b = {6}
c = {1,2,3}
print(a.issuperset(b))
print(a.issuperset(c))
False
True