python3笔记十三:python数据类型-Set集合
一:学习内容
- 集合概念
- 集合创建
- 集合添加
- 集合插入
- 集合删除
- 集合访问
- 集合操作:并集、交集
二:集合概念
1.set:类似dict,是一组key的集合,不存储value
2.本质:无序和无重复元素的集合
3.可使用大括号 {}或者set()函数创建集合;创建一个空集合必须是set(),{}代表的是空字典
三:集合创建
创建set需要一个list或者tuple或者dict作为输入集合,打印效果看着像排好序的,其实是无序的
1.创建set--用list作为输入
#用list作为输入
s1 = set([1,2,3,4,5])
print(s1)
s2 = set([1,3,2,5,4,5,2])
print(s2)
2.创建set--用tuple作为输入
#用tuple作为输入
s3 = set((1,2,3,4,5))
print(s3)
s4 = set((1,3,2,5,4,5,2))
print(s4)
3.创建set-用dict作为输入
#用dict作为输入
s5 = set({"name":"tester","age":18})
print(s5)
四:集合添加
集合名.set(x) 添加,将x作为一个整体直接全部添加到set中,x不能为字典和列表,因为字典和列表是可变的不能作为key
1.添加一个数字
s6 = set([1,2,3,4,5])
s6.add(6)
print(s6)
#添加重复值,不会有效果,因为过滤了
s7 = set([1,2,3,4,5])
s7.add(5)
print(s7)
2.添加一个列表,报错,因为list是可变的不能作为key
s8 = set([1,2,3,4,5])
s8.add([7,8,9]) #列表是可变的,不能作为key
3.添加一个元组,可以,因为tuple是不可变的,可以作为key
s9 = set([1,2,3,4,5])
s9.add((7,8,9))
print(s9)
4.添加一个字典,报错,因为字典是可变的,不可以作为key
s10 = set([1,2,3,4,5])
s10.add({1:"a"}) #报错,因为字典是可变的不能作为key
print(s10)
5.添加一个字符串,可以,因为字符串是不可变的,可以作为key
s10 = set([1,2,3,4,5])
s10.add("tester")
print(s10)
五:集合插入
集合名.update(x) 将x中每一项遍历插入到集合中
1.插入列表
s11 = set([1,2,3,4,5])
s11.update([6,7,8])
print(s11)
2.插入元组
s11 = set([1,2,3,4,5])
s11.update((6,7,8))
print(s11)
3.插入字符串,将字符串中每一项一项一项往里插入
s12 = set([1,2,3,4,5])
s12.update("test") #会插入{'t','e','s'}
print(s12)
六:集合删除
集合名.remove(x),删除x元素
1.删除集合
s13 = set([1,2,3,4,5])
s13.remove(1)
s13 = set([1,2,3,4,5])
s13.remove(6) #没有这个元素就报错
print(s13)
2.删除集合
s14 = set((1, 2, 3, 4, 5, (7, 8, 9)))
s14.remove(7) #报错
s14 = set((1, 2, 3, 4, 5, (7, 8, 9)))
s14.remove((7,8,9))
print(s14)
七:集合访问
1.遍历
s15 = set((1, 2, 3, 4, 5, (7, 8, 9)))
for i in s15:
print(i) #最后一个会打印(7,8,9)
2.集合是无序的,所以取出来是乱序的,每次打印的结果都可能不一样
s={"a","b","c"}
print(s)
3.集合是没有索引的
s17 = set([1, 2, 3, 4, 5])
print(s17[0]) #报错,set没有索引
4.集合枚举遍历,虽然能拿到下标,但是其实是乱序的,每次打印下标对应的值可能都不一样
s17 = set(["a", "b", "c", "d", "e"])
for index,data in enumerate(s17):
print(index,data)
八:集合操作
并集:两者相加
交集:相同部分
1.交集
s18 = set([1,2,3])
s19 = set([2,3,4])
s20 = s18 & s19 #交集为{2,3}
print(s18)
print(s20)
print(type(s20))
2.并集
s18 = set([1,2,3])
s19 = set([2,3,4])
s21 = s18 | s19 #并集为{1,2,3,4}
print(s18)
print(s21)
print(type(s21))