一、概念
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
set是一个无序不重复元素值,作为一个无序的集合,set不记录元素位置或者插入点,因此,set不支持indexing。
二、set对列表去重
mylist = ['Google', 'Taobao', 'Runoob', 'Facebook', 'Runoob', 'Zhihu', 'Baidu', 'Google']
myset = set(mylist) # myset是另外一个列表,里面的内容是mylist里面的无重复项
print("去重的效果:", myset)
如果想达到的效果是,去重但是不改变原来的列表顺序
mylist = ['Google', 'Taobao', 'Runoob', 'Facebook', 'Runoob', 'Zhihu', 'Baidu', 'Google'] set_list = list(set(mylist)) set_list.sort(key=mylist.index) print("去重不改变原本列表顺序的效果:", set_list)
三、基本操作
mylist = ['Google', 'Taobao', 'Runoob', 'Facebook', 'Runoob', 'Zhihu', 'Baidu', 'Google'] myset = set(mylist)
# 添加一项
myset.add('aaa')
# 添加多项
myset.update('1', '2', '3')
# 删除一项
myset.remove('Google')
# 计算长度
lenth = len(myset) 结果:6
# 成员测试
'Google' in myset 结果:True
'Google' not in myset 结果:False
四、集合运算
a = set('abracadabra') b = set('alacazam')
# 差集
print(a-b) 结果:{'b', 'd', 'r'}
print(b-a) 结果:{'l', 'z', 'm'}
# 并集
print(a | b) 结果:{'r', 'c', 'b', 'l', 'a', 'z', 'm', 'd'}
# 交集
print(a & b) 结果:{'a', 'c'}
# a 和 b 中不同时存在的元素
print(a ^ b) 结果:{'m', 'b', 'z', 'd', 'r', 'l'}