Python 集合
集合
集合 set 集合是可变容器 集合内的数据对象是唯一的(只有一个) 集合是无序的存储结构,集合中的数据没有先后关系 集合内的元素必须是不可变对象 集合是可迭代对象 集合是相当于只有键没有值的字典(键则是集合的数据) 创建空集合 s = set() 创建非空集合 s = {1, 2, 3} s = {3.14, True, (1970, 1, 1), 'hello'} 集合的构造函数 set set() set(iterable) 示例: s = {1, 3, 5, 7} s = set('ABC') s = set('ABCCBA') s = set({1: '1', 2: '2', 5: '5'}) s = set([1, 0, 3.14, 'hello']) s = set(('abc', '123', True)) 集合的运算: 交集,并集,补集,子集,超集 s1 = {1, 2, 3} s2 = {2, 3, 4} & 生成两个集合的交集 "同时存在于两个集合中的元素" s1 & s2 -> {2, 3} | 生成两个集合的并集 “两个集合的所有元素” s1 | s2 -> {1, 2, 3, 4} ^ 生成两个集合的对称补集 "去掉同时存在于两个集合中的元素,返回剩下的所有元素" s1 ^ s2 -> {1, 4} - 生成两个集合的补集 “去掉同时存在与两个集合中的元素,返回第一个集合中剩下的元素” s1 - s2 -> {1} s2 - s1 -> {4} > 判断一个集合是否是另一个集合的超集 < 判断一个集合是否是另一个集合的子集 s1 = {1, 2, 3} s2 = {2, 3} s1 > s2 -> True s1 < s2 -> False
# sets.py 集合练习 manager = {'John', 'Tom', 'Mike'} tech = {'John', 'Mike', 'Ana', 'Oda'} print(manager & tech) # both manager and tech print(manager - tech) # manager but not tech print(tech - manager) # tech but not manager print('Ana' in manager) # is Ana a manager? print(manager ^ tech) # who only plays one role? print(len(manager | tech)) # how many employees
Resistance is Futile!