目录
一、set介绍
set:类似dict,是一组key的集合,不存储value
本质:无序和无重复元素的集合
可以使用大括号 { } 或者 set() 函数创建集合。
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
二、创建set
创建set需要一个list或者tuple或者dict作为输入集合
创建格式:
parame = {value01,value02,…}
或者
set(value)
三、重复元素在set中会自动被过滤
(一)集合里为列表
s1 = set([1,2,3,4,5,3,4,5])
print(s1) #输出:{1, 2, 3, 4, 5}
print(type(s1)) #<class 'set'>
(二)集合里为元组
s2 = set((1,2,3,3,2,1))
print(s2) #输出:{1, 2, 3}
(三)集合里为字典
s3 = set({1:"good", 2:"nice"})
print(s3) #输出:{1, 2} 只把key取了出来
四、集合的基本操作
(一)集合元素的添加(set.add)
s4 = set([1,2,3,4,5])
s4.add(6) #{1, 2, 3, 4, 5, 6}
s4.add(3) #可以添加重复的,但是不会有效果
#s4.add([7,8,9]) #报错
s4.add((7,8,9)) #{1, 2, 3, 4, 5, 6, (7, 8, 9)}
#s4.add({1:"a"}) #报错
print(s4)
(二)插入整个list、tuple、字符串、打碎插入(set.update)
s5 = set([1,2,3,4,5])
s5.update([6,7,8]) #{1, 2, 3, 4, 5, 6, 7, 8}
s5 = set([1,2,3,4,5])
s5.update((9,10)) #{1, 2, 3, 4, 5, 9, 10}
s5 = set([1,2,3,4,5])
s5.update("luck") #{1, 2, 3, 4, 5, 'c', 'k', 'u', 'l'}
s5 = set([1,2,3,4,5])
s5.update("never","luck") #{'u', 1, 2, 3, 4, 5, 'k', 'l', 'n', 'r', 'v', 'c', 'e'}
(三)删除(set.remove)
s6 = set([1,2,3,4,5])
s6.remove(3)
print(s6) #{1, 2, 4, 5}
(四)遍历
s7 = set("hello")
for i in s7:
print(i)
'''
输出:
h
o
e
l
'''
#set没有索引
#print((s7[3]))#会报错
s7 = set("money")
for index, data in enumerate(s7):
print(index, data)
'''
0 y
1 n
2 o
3 e
4 m
'''
(五)交集
s8 = set([1,2,3])
s9 = set([2,3,4])
a1 = s8 & s9 #交集
print(a1) #{2, 3}
print(type(a1)) #<class 'set'>
(六)并集
s8 = set([1,2,3])
s9 = set([2,3,4])
a2 = s8 | s9 #并集
print(a2) #{1, 2, 3, 4}
print(type(a2)) #<class 'set'>
五、类型转换
(一)list→set
ll = [1,2,3,4,5]
s1 = set(ll)
print(s1) #{1, 2, 3, 4, 5}
print(type(s1)) #<class 'set'>
(二)tuple→set
t2 = (1,2,3,4,3,2)
s2 = set(t2)
print(s2) #{1, 2, 3, 4}
print(type(s2)) #<class 'set'>
(三)set→list
s3 = {1,2,3}
l3 = list(s3)
print(l3) #[1, 2, 3]
print(type(l3)) #<class 'list'>
(四)set→tuple
s4 = {2,3,4,5}
t4 = tuple(s4)
print(t4) #(2, 3, 4, 5)
print(type(t4)) #<class 'tuple'>