集合(set)是一个无序的不重复元素序列,可以使用大括号 { } 或者 set() 函数创建集合。
注意:创建一个空集合必须用
**set()**{ }是用来创建一个空字典
set1 = {value1,value2,...} # value任意# orset(value) # 其中的value必须是可迭代对象,不能是数字
增
# 末尾加入s = set()s.add('1') # {'1'}
删
# 将元素从集合中移除,如果元素不存在,则会发生错误s.remove('3') # 报错
# 如果元素不存在,不会发生错误
s.discard('3')
# 随机删除集合中一个元素,因为集合无序
s.pop()
改
update(),参数可以是列表,元组,字典等数据类型
set1 = set(("Google", "Runoob", "Taobao"))
set1.update({1,3})
print(thisset) # {1, 3, 'Google', 'Taobao', 'Runoob'}
set1.update([1,4],[5,6])
print(thisset) # {1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}
遍历
set1 = set(range(1, 6))
for elem in set1:
print(elem ** 2, end=' ') # 1 4 9 16 25 36
集合运算

# 初始化数据
a = {1, 2, 3, 4, 5, 6}
b = set(range(1, 10)) # 1 - 9, 不包含10
并集
print(set1 | set2)
print(set1.union(set2))
交集
print(set1 & set2)
print(set1.intersection(set2))
差集
print(set1 - set2)
print(set1.difference(set2))
对称差
print(set1 ^ set2)
print(set1.symmetric_difference(set2))
子集
# set1 是 set2 的 子集
print(set1 <= set2)
print(set1.issubset(set2))
超集
# set2 是 set1 的 超集
print(set2 >= set1)
print(set2.issuperset(set1))
常见方法
| 方法 | 描述 |
|---|---|
| add() | 为集合添加元素 |
| clear() | 移除集合中的所有元素 |
| copy() | 拷贝一个集合 |
| pop() | 随机移除元素 |
| remove() | 移除指定元素 |
| union | 返回两个集合的并集 |
| update() | 给集合添加元素 |
| difference() | 返回多个集合的差集 |
| difference_update() | 移除集合中的元素,该元素在指定的集合也存在。 |
| discard() | 删除集合中指定的元素 |
| intersection() | 返回集合的交集 |
| intersection_update() | 删除集合中的元素,该元素在指定的集合中不存在。 |
| isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
| issubset() | 判断指定集合是否为该方法参数集合的子集。 |
| issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
| symmetric_difference() | 返回两个集合中不重复的元素集合。 |
| symmetric_difference_update() | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
