Fork me on GitHub

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内部“不会有重复元素”。

posted @   小百天  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示