Python字典的孪生兄弟之集合
字典是对应于数学中的映射概念
集合和字典相似
1.集合
num = {}
type(num) #字典类型dict
print(type(num))
num1 = {1,2,3,4,5,6}
print(type(num1)) #打印set型
set型即为集合
用花括号括起来的元素,没有对应的映射关系,即是我们说的集合
在你的世界里,集合就是唯一
num2 = {1,2,3,4,5,5,4,3,2}
print(num2) #打印出无重复的数字
虽然集合中的元素有很多,但是集合的定义限制了元素必须唯一,注意,集合也是无序的,不能使用索引值来索引集合中的元素
num2[2]会报错
2.创建一个集合
1)直接把一堆元素用花括号括起来
2)使用set()工厂函数
num3 = set([1,2,3,4,5,5,5,6]) #参数可以传递一个列表或元组或字符串
print(num3)
去掉列表中重复的元素
#[0,1,2,3,4,5,5,3,1]
num1 = [0,1,2,3,4,5,5,3,1]
temp = []
for each in num1:
if each not in temp:
temp.append(each)
print(temp) #打印新的列表
使用集合,但是不能不争列表元素有序
num2 = list(set(num1)) # 返回一个集合再返回一个列表
print(num2)
#元素无序
num3 = [1,2,3,4,5,6,6,0]
print(list(set(num3))) #集合元素是无需的
3.访问集合中的值
1)可以使用for把集合中的数据一个个的读取出来
print(1 in num2) #True
print('1' in num2) #False
2)可以通过in 和not in 判断一个元素是否再集合中
add()方法
num4 = {1,2,3,4,5}
print(num4)
num4.add(6) #将元素6添加进去
print(num4)
remove()方法
num4.remove(4) #将元素4移除
print(num4)
3. 不可变集合
frozenset()方法 定义一个不可变集合
num5 = frozenset([1,2,3,4,5])
print(num5)
当使用num5.add(6)会报错
欢迎关注下面公众号,每周精选一篇原创文章!!!