Python基础入门学习笔记 027 集合:在我的世界里,你就是唯一

发布时间 2023-08-23 10:02:13作者: 一杯清酒邀明月
字典的表亲--集合(在python3中,如果用大括号括起一堆数字但没有体现映射关系,那么就会认为这堆玩意儿就是个集合)
1 >>> num1 = {}
2 >>> type(num1)
3 <class 'dict'>
4 >>> num2 = {1,3,4}
5 >>> type(num2)
6 <class 'set'>

集合中的元素都是唯一的(集合会自动帮我们把重复的数据清理掉,集合是无序的,所以不能试图去索引集合中的某一个元素)

1 >>> num = {1,2,3,4,5,5,4,3,2,1}
2 >>> num
3 {1, 2, 3, 4, 5}

如何创建一个集合有两种方法:1、直接把一堆元素用大括号括起来;2、用set()

•一种是直接把一堆元素用花括号括起来

>>> set1 = {'小甲鱼','小鱿鱼','小甲鱼'}

•一种是使用set()工厂函数

1 >>> set2 = set(['小甲鱼','小鱿鱼','小甲鱼'])
2 >>> set1 == set2
3 True

课堂搞搞看

要求:去掉列表中重复的元素

[0, 1, 2, 3, 4, 5, 5, 3, 1]

方法一、

1 >>> list1 = [1,2,3,4,5,5,3,1,0]
2 
3 >>> temp = list1[:]
4 >>> list1.clear()
5 >>> list1
6 []
7 >>> for each in temp:
8     if each not in list1:
9         list1.append(each) #append()表示向列表中添加元素

方法二、

1 >>> list1 = list(set(list1))
2 >>> list1
3 [0, 1, 2, 3, 4, 5]
4 
5 #set(list1)先将list1列表转变为集合, list(set(list1))再讲集合转变为列表

如何访问集合中的值

由于集合中的元素是无序的,所以并不能像序列那样用下标来进行访问,但是可以使用迭代把集合中的数据一个个读取出来

•可以使用for把集合中的数据一个个读取出来

1 >>> set1 = {1,2,3,4,5,4,3,2,1,0}
2 >>> for each in set1:
3     print(each,end = ' ')
4 
5     
6 0 1 2 3 4 5 

•也可以通过in和not in判断一个元素是否在集合中已经存在

1 >>> 0 in set1
2 True
3 >>> 8 in set1
4 False

使用add()方法可以为集合添加元素,使用remove()方法可以删除集合中已知的元素:

1 >>> set1.add(6)
2 >>> set1
3 {0, 1, 2, 3, 4, 5, 6}
4 >>> set1.remove(5)
5 >>> set1
6 {0, 1, 2, 3, 4, 6}

不可变集合(把元素给froze冰冻起来)(像元组一样不能随意地增加或删除集合中的元素)