一、什么是set
set和dict类似,是一组key的集合,但不存储value。在set中,没有重复的元素,添加到set中的元素必须是不可变的,否则会报错。
二、set操作
1、创建set
创建set时,可以提供一个list、tuple或者字符串作为输入:
# 使用list创建
>>> s1 = set([1, 2, 3, 4])
>>> s1
{1, 2, 3, 4}
# 使用tuple创建
>>> s2 = set((5, 6, 7, 8))
>>> s2
{5, 6, 7, 8}
# 如果set中有重复元素,则会被过滤掉
>>> s3 = set([1, 2, 2, 3, 4])
>>> s3
{1, 2, 3, 4}
# 使用字符串创建set,字符串中重复的字符会被过滤掉
>>> s4 = set('hello')
>>> s4
{'l', 'h', 'o', 'e'}
除此之外也可以直接创建:
>>> s = {1, 2, 3, 4}
>>> s
{1, 2, 3, 4}
2、添加元素
>>> s = set([1, 2, 3, 4])
>>> s.add(5)
>>> s
{1, 2, 3, 4, 5}
# 将一个set的值添加到另一个中
>>> s1 = {6, 7, 8}
>>> s.update(s1)
>>> s
{1, 2, 3, 4, 5, 6, 7, 8}
3、删除元素
>>> s = set([6, 7, 8, 9, 10])
# 删除指定元素
>>> s.remove(10)
>>> s
{6, 7, 8, 9}
# 删除第一个元素
>>> s.pop()
6
>>> s
{7, 8, 9}
4、集合操作
>>> s1 = {1, 2, 3, 4, 5}
>>> s2 = {6, 7, 8}
# 并集(|)
>>> s3 = s1 | s2
>>> s3
{1, 2, 3, 4, 5, 6, 7, 8}
# 交集(&)
>>> s3 & s1
{1, 2, 3, 4, 5}
# 差集(-)
>>> s3 - s1
{8, 6, 7}
# 对称差分(^),得到不同时属于两个集合的元素
>>> s4 = {4, 5, 6, 7}
>>> s1 ^ s4
{1, 2, 3, 6, 7}