python笔记 -- set集合

一、概念

集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。

基本功能是进行成员关系测试和删除重复元素。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

set是一个无序不重复元素值,作为一个无序的集合,set不记录元素位置或者插入点,因此,set不支持indexing。

二、set对列表去重

mylist = ['Google', 'Taobao', 'Runoob', 'Facebook', 'Runoob', 'Zhihu', 'Baidu', 'Google']
myset = set(mylist) # myset是另外一个列表,里面的内容是mylist里面的无重复项
print("去重的效果:", myset)
python笔记 -- set集合

如果想达到的效果是,去重但是不改变原来的列表顺序

mylist = ['Google', 'Taobao', 'Runoob', 'Facebook', 'Runoob', 'Zhihu', 'Baidu', 'Google']
set_list = list(set(mylist))
set_list.sort(key=mylist.index)
print("去重不改变原本列表顺序的效果:", set_list)
python笔记 -- set集合

三、基本操作

mylist = ['Google', 'Taobao', 'Runoob', 'Facebook', 'Runoob', 'Zhihu', 'Baidu', 'Google']
myset = set(mylist)

# 添加一项

myset.add('aaa')     python笔记 -- set集合

# 添加多项

myset.update('1', '2', '3')   
python笔记 -- set集合

# 删除一项

myset.remove('Google')    
python笔记 -- set集合

# 计算长度

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'}

 

上一篇:Python从路径提取文件


下一篇:python函数学习