集合是一个无序的,不重复的数据组合,它的主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之前的交集、差集、并集等关系
类型:
集合(sets)有两种不同的类型:可变集合(set)和不可变集合(frozenset)。对可变集合(set),可以添加和删除元素,对不可变集合(frozenset)则不允许这样做。注意:可变集合(set)不是可哈希的,因此既不能用做字典的键也不能做其他集合中的元素。不可变集合
(frozenset)则正好相反,即它们有哈希值,能被用做字典的键或是作为集合中的一个成员。
集合的相关操作:
(1)如何创建集合类型和给集合赋值
由于集合没有自己的语法格式,只能通过集合的工厂方法set()和frozenset()创建
res=set('printstudent');
s2= frozenset('python')
print(res)
print(s2)
打印:
{'r', 's', 'd', 'n', 'i', 't', 'e', 'p', 'u'}
frozenset({'y', 'h', 'o', 'n', 't', 'p'})
(2)如何访问集合中的值
可以遍历查看集合成员或检查某项元素是否是一个集合中的成员。
s2= set('python')
print('a' in s2)
print('p' in s2)
for i in s2:
print(i)
打印:
False
True
n
p
t
y
o
h
(3)如何更新集合s2= set('python')
s2.add('aa');
print('增加',s2);
s2.remove('n');
print('减少',s2);
s2.update('hellon')
print('更新',s2);
打印:
s2= set('python')
s2.add('aa');
print('增加',s2);
s2.remove('n');
print('减少',s2);
s2.update('hellon')
print('更新',s2);
增加 {'y', 'n', 'h', 'o', 't', 'p', 'aa'}
减少 {'y', 'h', 'o', 't', 'p', 'aa'}
更新 {'y', 'l', 'h', 'n', 'o', 'e', 't', 'p', 'aa'}
集合类型操作符
1.in, not in,==,!=,<,>
前面有示例
2.联合(|)
联合(union)操作与集合的or操作其实等价的,联合符号有个等价的方法,union()。
a = set('python');
b = set('yuan');
print(a |b)
打印:
{'o', 'p', 'n', 'a', 't', 'u', 'y', 'h'}
3、交集(&)
a = set('12345'); b = set('12'); print(a &b)
打印:
{'1', '2'}
4.差集
a = set('12345'); b = set('12'); print(a-b)
打印:
{'4', '3', '5'}