集合(set):把不同的元素无序组合在一起
重要的作用:去重,关系测试
s=set(‘alex li‘)
s1=[‘alvin‘,‘ee‘,‘alvin‘]
s=set(s1)
print(s) # {‘l‘, ‘a‘, ‘e‘, ‘ ‘, ‘i‘, ‘x‘} 集合没有重复元素
集合对象是一组无序排列的可哈希的值。集合成员可以作为字典的键值。
集合无序,没有键和索引。有两种方法取值:
1.使用for循环迭代查看
2.使用迭代器查找
集合:
可变集合(set):可添加和删除元素,非可哈希,不能作为字典键
不可变集合(frozenset):不可变,与可变集合相反
集合的相关操作
s={2,3,‘alex‘}
s.add
s.add(‘uu‘)
print(s)
输出结果:{2, 3, ‘uu‘, ‘alex‘}
s.update(‘ops‘)
print(s)
输出结果:{2, 3, ‘o‘, ‘uu‘, ‘alex‘, ‘u‘, ‘p‘, ‘s‘}
s.remove(2)
print(s)
{3, ‘alex‘, ‘e‘, ‘uu‘, ‘u‘}
s.pop() 随机删除,并返回删除值
s.clear() 清空
del 从内存删除
集合类型操作符
集合等价
== !=
print(set(‘alex‘)==set(‘alexxxxxx‘))
True
子集和超集
<
print(set(‘alex‘)<set(‘alex2222‘))
True
print(set(‘alex‘)<set(‘alex‘))
False
关系测试
交集(intersection):
a & b
a=set([1,2,3,4,5])
b=set([4,5,6,7,8])
print(a.intersection(b))
{4, 5}
并集(union):
a | b
print(a.union(b))
{1, 2, 3, 4, 5, 6, 7, 8}
差集(difference):
a - b
print(a.difference(b))
{1, 2, 3}
in a but not in b
反向交集()
a ^ b
print(a.symmetric_difference(b))
{1, 2, 3, 6, 7, 8}
(in a but not in b) and (in b but not in a)
父集 超集
a.issuperset(b) a>b 判断a是否完全包含b,返回布尔值
子集
a.issubset(b) a<b 判断a是否包含在b内,返回布尔值
原文地址:https://www.cnblogs.com/zd37/p/11562039.html