> For the complete documentation index, see [llms.txt](https://gitbook.existorlive.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gitbook.existorlive.cn/kai-fa-yu-yan-xue-xi/python/8.-ji-he.md).

# 8.集合

**集合（set）​是一个无序的不重复元素序列。**\
**可以使用大括号 { } 或者 set() 函数创建集合，注意：创建一个空集合必须用 set()** 而不是 **{ }**，因为 **{ }** 是用来创建一个空字典\
​

```python
# 空集合
set1 = set()

# 将列表和元组转换为set
set2 = set((1,3,4))
set3 = set([1,23,3])

```

### 集合的操作

集合可以进行**交差并补**操作\
​

```python

a = set('abracadabra')
b = set('alacazam')

print(a | b)           # 并集

print(a & b)           # 交集

print(a - b)           # 差集

print(a ^ b)           # 不同时包含于a和b的元素
```

### 集合方法和函数

```python
set.add(obj)          # 添加元素
set.update(iterable)  

set.remove(obj)       # 删除元素，如果obj不存在则报错
set.discard(obj)      # 删除元素，obj不存在不报错
set.pop()             # 随机移除一个元素

set.clear()           # 清空集合

set.difference(iterable)   # 差集
set.difference_update(iterable)  # 删除iterable中包含的元素

set.intersection(iterable)   # 交集
set.intersection_update(iterable)  # 删除iterable中不包含的元素

isdisjoint()
issubset()
issuperset()
```
