集合
集合是无序可变,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典
中的“键对象”,因此是不能重复的且唯一的。
集合创建和删除
1. 使用{}创建集合对象,并使用 add()方法添加元素
>>> a = {3,5,7}
>>> a
{3, 5, 7}
>>> a.add(9)
>>> a
{9, 3, 5, 7}
2. 使用 set(),将列表、元组等可迭代对象转成集合。如果原来数据存在重复数据,则只保
留一个。
>>> a = ['a','b','c','b']
>>> b = set(a)
>>> b
{'b', 'a', 'c'}
3. remove()删除指定元素;clear()清空整个集合
>>> a = {10,20,30,40,50}
>>> a.remove(20)
>>> a
{10, 50, 30}
集合相关操作
像数学中概念一样,Python 对集合也提供了并集、交集、差集等运算。我们给出示例:
>>> a = {1,3,'sxt'}
>>> b = {'he','it','sxt'}
>>> a|b
#并集
{1, 3, 'sxt', 'he', 'it'}
>>> a&b
#交集
{'sxt'}
>>> a-b
#差集
{1, 3}
>>> a.union(b)
#并集
{1, 3, 'sxt', 'he', 'it'}
>>> a.intersection(b)
#交集
{'sxt'}
>>> a.difference(b)
#差集
{1, 3}
![](https://img-blog.csdnimg.cn/direct/e61adc1c05074d5ba5f82ed9fff23ae3.png)
![](https://img-blog.csdnimg.cn/direct/c37be26a401e41ffb1923d0ce67baa9f.png)
![](https://img-blog.csdnimg.cn/direct/10ff2411f69b4132a098172265246497.png)
![](https://img-blog.csdnimg.cn/direct/7376c3ff9b864c68b9ac0e942b1d7eca.png)
![](https://img-blog.csdnimg.cn/direct/4502e34c5afe428c9c46b12a88113c08.png)
用法总结:
1. 键必须可散列
(1) 数字、字符串、元组,都是可散列的。
(2) 自定义对象需要支持下面三点:
1
支持 hash()函数
2
支持通过__eq__()方法检测相等性。
3
若 a==b 为真,则 hash(a)==hash(b)也为真。
2. 字典在内存中开销巨大,典型的空间换时间。
3. 键查询速度很快
4. 往字典里面添加新建可能导致扩容,导致散列表中键的次序变化。因此,不要在遍历字
典的同时进行字典的修改。
控制语句
选择结构
选择结构通过判断条件是否成立,来决定执行哪个分支。选择结构有多种形式,分为:单分
支、双分支、多分支。流程图如下
![](https://img-blog.csdnimg.cn/direct/d1b3896d7b3c456d8788c8ba97b8515d.png)
![](https://img-blog.csdnimg.cn/direct/9278877125644207bb6ba1854ebea34b.png)
![](https://img-blog.csdnimg.cn/direct/233b098cf9aa47269b878f5cfe1827e4.png)
![](https://img-blog.csdnimg.cn/direct/1c47c720fe17400b8eb51c2639e1d0a8.png)
![](https://img-blog.csdnimg.cn/direct/cbb5a91eb5e74956b9bf2237708042e3.png)
![](https://img-blog.csdnimg.cn/direct/f27d12c8b8854098b4a0df964a70b176.png)
![](https://img-blog.csdnimg.cn/direct/b92208a701984f8dade33dfd3645fce7.png)
![](https://img-blog.csdnimg.cn/direct/81160a9b8b4f4721be1a4dac452ea907.png)
![](https://img-blog.csdnimg.cn/direct/97d8b610f49841b397a508606d533a22.png)
![](https://img-blog.csdnimg.cn/direct/6c3b9668e5574862a64bede08829b7c4.png)
![](https://img-blog.csdnimg.cn/direct/5995623c54d64fefa908ce02c0465544.png)
![](https://img-blog.csdnimg.cn/direct/cc0b4211f47841d6ad2a3d684a17a083.png)
![](https://img-blog.csdnimg.cn/direct/93e0b26ff1be48f78031407a02850bca.png)