Python:集合

大数据学习路线图

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!版权所有,侵权必究!
[返回Python教程首页]

Set:集合

集合Set是一个无序不重复的序列。通常用来进行成员关系测试和删除重复元素,且支持集合运算(并交差等)。定义格式:

#{}定义的集合。其每个元素就是obj1,obj2,...
s1 = {obj1,obj2,obj3,…}
#set()定义的集合。其每个元素为obj拆分的单个字符列表
s2 = set(obj)

例如:

>>> set1 = {'Dog','Cat','Rabbit'}
>>> print(set1)
{'Rabbit', 'Cat', 'Dog'}
>>> set2 = set('Dog')
>>> set2
{'D', 'o', 'g'}

设A和B都是集合,其集合操作主要是包含以下几种:
A | B:并集A∪B。在A或B中的对象
A & B:交集A∩B。在A和B中的对象
A - B:差集A - B。在A中,且不在B中
A ^ B:对称集 (A-B)∪(B-A)。在A或B中的对象,但不同时在A和B中
例如:

>>> course = {'Math','Chinese','English','History','Music','Math'}
>>> print(course)
{'Music', 'Math', 'History', 'English', 'Chinese'}  #打印时自动删除重复元素Math
>>> 'Math' in course         #检测成员关系,返回True or False
True
>>> 'Art' in course
False
>>> 'Art' not in course
True
>>> set1 = set('abcdefg')  #定义集合Set
>>> set2 = set('abc')
>>> set2 = set('abchijk')
>>> set1 - set2                 #差
{'f', 'e', 'd', 'g'} 
>>> set1 | set2                 #并
{'a', 'd', 'h', 'c', 'j', 'e', 'i', 'f', 'k', 'b', 'g'}
>>> set1 & set2                #交
{'a', 'b', 'c'}
>>> set1 ^ set2                #(set1 | set2)-(set1 & set2)不同时出现在set1和set2中
{'j', 'e', 'g', 'h', 'd', 'i', 'f', 'k'}