上QQ阅读APP看书,第一时间看更新
2.3.2 针对集合的常用数据操作
在数据分析的项目里,经常需要对不同的集合求交集、并集和差集等。此外,同样也可以通过in来遍历集合。在如下的SetUsage.py案例中,我们来看一下这些操作。
01 # coding=utf-8 02 # 以set的方式定义集合 03 setFromMem = set([10, 12, 14, 8]) 04 setFromFile = set([10, 3, 8, 15]) 05 # 演示遍历 06 for ele in setFromFile: 07 print(ele) 08 # 求交集 09 print(setFromMem & setFromFile) # {8, 10} 10 print(setFromMem.intersection(setFromFile)) # {8, 10} 11 # 求并集 12 # {3, 8, 10, 12, 14, 15} 13 print(setFromMem | setFromFile) 14 # {3, 8, 10, 12, 14, 15} 15 print(setFromMem.union(setFromFile)) 16 # 求差集 17 print(setFromMem - setFromFile) # {12, 14} 18 print(setFromMem.difference(setFromFile)) # {12, 14} 19 print(setFromFile - setFromMem) # {3, 15}
由于在本段代码里需要用中文写注释,因此在第1行指定了本段代码是用utf-8来编码。在第3行和第4行里,通过set来定义集合,这里其实是把列表转换成了set集合。
在第6行和第7行里,我们用for结合in的方式遍历集合,这种方式与遍历列表和元组时非常相似。在第9行和第10行里,通过&和intersection两种方式来求两个集合的交集,即求均存在于两个集合中的元素。
在第13行和第15行里,是通过|和union方法求并集,而在第17行和第18行里,则是通过-和difference方法求两个集合的差集。差集就是存在于一个集合但不存在于另一个集合中的元素,所以用第17行和第19行两种方法求出的差集结果不同。