上QQ阅读APP看书,第一时间看更新
2.1.5 集合类型
集合是一个无序的不重复的元素序列,可以使用大括号或者调用set()函数来创建。注意,创建一个空集合时必须调用set()函数,因为{ }是用来创建一个空字典的,并不是用来创建空集合的。创建集合的语法格式如下:
parame = {value01, value02, ...} 或者 set(value)
下面以客户购买商品为例介绍集合的去重功能,假设某客户在11月份购买了6次商品,分别是打印纸、椅子、书籍、配件、文件夹、配件,这里有重复的商品,我们可以借助集合删除重复值,示例代码如下:
buy_oct = {'打印纸','椅子','书籍','配件','文件夹','配件'}
运行上述代码,输出如下:
buy_oct
{'书籍', '文件夹', '椅子', '打印纸', '配件'}
可以看出已经删除了重复值,只保留了5种不同类型的商品名称。
同理,该客户在12月份购买了4次商品,分别是装订机、椅子、书籍、配件,示例代码和输出如下:
buy_nov = {'装订机','椅子','书籍','配件'} buy_nov
{'书籍', '椅子', '装订机', '配件'}
可以快速判断某个元素是否在某集合中,例如判断该客户11月份是否购买了“配件”,示例代码和输出如下:
'配件' in buy_oct
True
Python中的集合与数学上的集合概念基本类似,也有交集、并集、差集和补集,集合之间关系的维恩图如图2-1所示。
图2-1 集合间的关系
集合的交集,例如,统计该客户11月份和12月份都购买的商品,示例代码和输出如下:
buy_oct & buy_nov
{'书籍', '椅子', '配件'}
集合的并集,例如,统计该客户11月份和12月份购买的商品,示例代码和输出如下:
buy_oct | buy_nov
{'书籍', '文件夹', '椅子', '打印纸', '装订机', '配件'}
集合的差集,例如,统计该客户在11月份和12月份不同时购买的商品,示例代码和输出如下:
buy_oct ^ buy_nov
{'文件夹', '打印纸', '装订机'}
集合的补集,例如,统计该客户11月份购买,而12月份没有购买的商品,示例代码和输出如下:
buy_oct - buy_nov
{'文件夹', '打印纸'}