从零开始的Python学习Episode 9——集合
集合
集合是一个无序的,不重复的数据组合,是python基本的数据类型,把不同的元素组成一起就形成集合。
一、创建集合
s = set('smile')
list = ['1','2','3']
print(s) #{'i', 'm', 's', 'e', 'l'}
s1 =set(list)
print(s1) #{'1', '3', '2'}
集合分两种:可变集合、不可变集合
可变集合(set):可添加和删除元素,非可哈希的,不能用作字典的键,也不能做其他集合的元素。
不可变集合(frozenset):与上面相反,我们也可以调用frozenset()方法来创建一个不可变集合。
二、访问集合
集合是无序的,而且没有键(key),所以不能用索引和键来访问集合中的元素,只能通过遍历来查询集合中的元素 或者 通过in、not in关键字来判断集合中是否存在某元素。
三、更新集合
add()方法,添加一个元素
s = set('smile') s.add('pup') print(s)#{'i', 'pup', 'l', 'm', 'e', 's'}
update()方法,添加多个元素
s = set('smile') s.update('pup') print(s)#{'l', 'i', 'm', 's', 'e', 'p', 'u'}
remove()方法,删除一个特定元素
s = set('smile') s.remove('m') print(s)#{'s', 'e', 'l', 'i'}
clear()方法,清空集合
s = set('smile') s.clear() print(s)#set()空集合
注意:只有可变集合才能更新。
四、集合类型操作符
并集:
s = set('smile')
s1 = set('smilepu')
s2 = s1|s
print(s2)#{'u', 'm', 's', 'e', 'l', 'i', 'p'}
s2=s1.union(s)
print(s2)#{'u', 'm', 's', 'e', 'l', 'i', 'p'}
交集:
s = set('smile') s1 = set('smilepu') s2 = s1&s print(s2)#{'i', 'm', 'l', 's', 'e'} s2=s1.intersection(s) print(s2)#{'i', 'm', 'l', 's', 'e'}
差集:
s = set('smile') s1 = set('smilepu') s2 = s1-s print(s2)#{'u', 'p'} s2=s1.difference(s) print(s2)#{'u', 'p'}
对称差集(异或):选出不同的元素
s = set('smile') s1 = set('smilepu') s2 = s1^s print(s2)#{'p', 'u'} s2=s1.symmetric_difference(s) print(s2)#{'p', 'u'}
子集:用<、issubset()判断是否是子集
s1={1,2,3,4} s2={3,4,5,6} s3={2,3,4} print(s2<s1)#False print(s3<s1)#True print(s3.issubset(s1))#True
超集:>、issuperset()
s1={1,2,3,4} s2={3,4,5,6} s3={2,3,4} print(s1>s2)#False print(s1>s3)#True print(s1.issuperset(s3))#True