# 集合

集合是一个无序且不重复元素序列，并且可以进行交集、并集、差集等常见的集合操作。\
可以使用大括号`{}`或者`set()`函数创建集合，注意：创建一个空集合必须用`set()`，不能用`{}`，因为`{}`是用来创建一个空字典。

```py
users = {'Jack','Rose','Tom','Rose'}
或者
users = set(['Jack','Rose','Tom','Rose'])
```

## 集合运算

```py
users1 = {'Jack','Rose','Tom'}
# 或者
users2 = set(['Jack','Rose','Tom', "Bob"])

# 集合的运算

# 交集
print(users1 & users2)  # {'Jack', 'Rose', 'Tom'}

# 并集
print(users1 | users2)  # {'Jack', 'Rose', 'Tom', 'Bob'}

# 差集 集合 user1 中存在，user2 中不存在的元素
print(users1 - users2)  # set()
# 差集 集合 user2 中存在，user1 中不存在的元素
print(users2 - users1)  # {'Bob'}

# 对称差集，两个集合中不重复的元素
print(users1 ^ users2)  # {'Bob'}
```

## 基本操作

```py
users1 = {'Jack','Rose','Tom'}

# 添加元素，如果已经存在，则不做任何操作
users1.add('Bob')

# 添加多个元素，参数可以是列表，元组，字典等
users1.update(['Bob','Rose','Tom'])

# 删除元素，如果元素不存在，则抛出异常
users1.remove('Bob')

# 删除元素，如果元素不存在，则不抛出错误
users1.discard('Bob')

# 随机删除一个元素，pop 方法会对集合进行无序排列，然后删除第一个元素
users1.pop()

# 获取集合的长度
len(users1)

# 判断元素是否在集合中
'Bob' in users1

# 判断元素是否在集合中
'Bob' in users1

# 清空集合
users1.clear()
```

## 内置方法

<table><thead><tr><th width="264.62890625">方法</th><th>描述</th></tr></thead><tbody><tr><td><code>add()</code></td><td>为集合添加元素</td></tr><tr><td><code>clear()</code></td><td>移除集合中的所有元素</td></tr><tr><td><code>copy()</code></td><td>拷贝一个集合</td></tr><tr><td><code>difference()</code></td><td>返回多个集合的差集</td></tr><tr><td><code>difference_update()</code></td><td>移除集合中的元素，该元素在指定的集合也存在。</td></tr><tr><td><code>discard()</code></td><td>删除集合中指定的元素</td></tr><tr><td><code>intersection()</code></td><td>返回集合的交集</td></tr><tr><td><code>intersection_update()</code></td><td>返回集合的交集。</td></tr><tr><td><code>isdisjoint()</code></td><td>判断两个集合是否包含相同的元素，如果没有返回 True，否则返回 False。</td></tr><tr><td><code>issubset()</code></td><td>判断指定集合是否为该方法参数集合的子集。</td></tr><tr><td><code>issuperset()</code></td><td>判断该方法的参数集合是否为指定集合的子集</td></tr><tr><td><code>pop()</code></td><td>随机移除元素</td></tr><tr><td><code>remove()</code></td><td>移除指定元素</td></tr><tr><td><code>symmetric_difference()</code></td><td>返回两个集合中不重复的元素集合。</td></tr><tr><td><code>symmetric_difference_update()</code></td><td>移除当前集合中在另外一个指定集合相同的元素，并将另外一个指定集合中不同的元素插入到当前集合中。</td></tr><tr><td><code>union()</code></td><td>返回两个集合的并集</td></tr><tr><td><code>update()</code></td><td>给集合添加元素</td></tr><tr><td><code>len()</code></td><td>计算集合元素个数</td></tr></tbody></table>
