python3 dict和set
python 内置了字典(dict),在其他语言中也成为了map,使用键-值(key-value)存储,具有极快的查找速度。
如果需要查找某位同学对应的分数,使用列表 names=["Lili","Bob","Jerry"]
scores=[85,96,91] 进行查询的话,列表的长度越长,那么查询所花费的时间也越长了。
但是,如果使用字典 ns = {"Lili":85,"Bob":96,"Jerry":91} 进行查询,无论这个表有多大,查找速度都不会变慢。
当然,也可以给字典赋值显示,
如果多次对一个key放不同的value,后面的值只会把前面的值冲掉:
如果key不存在,dict就会报错,为了避免这个报错,我们应该首先使用 in 判断key是否存在:
或者使用dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value,这里指定的是-1
要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
dict与list相比,dict:1、查找和插入的速度极快,不会随着key的增加而增加;2、需要占用大量内存
set
set也是与dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合:
>>>s=set([1,2,3])
>>>s
{1,2,3}
重复的元素会在set中自动被过滤:
>>>s=set([1,1,2,2,3,3])
>>>s
{1,2,3}
可以通过add(key)方法添加元素到set中,可以重复添加,但不会有效果:
通过remove(key)的方法可以删除元素:
set可以看成是数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
>>> s1 = set([1,2,3])
>>> s2 = set([2,3,4])
>>> s1 & s2
{2,3}
>>> s1 | s2
{1,2,3,4}
set和dict的唯一区别仅仅是没有存储对应的value,但是set的原理和dict一样,所以,同样不可以放入可变对象,因此无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律