python学习笔记(8):dict的使用

列表这种数据结构 适合于将值组织到一个结构中,并且通过编号对其进行引用。在python中还有一种通过名字引用值的数据结构,这种类型的数据结构称为映射(maping),字典(dict)是python 中唯一内建的映射类型。字典中的值没有特殊的顺序,但都是存储在一个特定的键(Key)下,键可以是数字、字符串甚至是元组。

dict的全称是dictionary,使用键-值(Key-Value)存储,具有极快的查找速度。用python写一个dict如下:
这里写图片描述

为什么dict查找速度这么快?字典这个名称已经给出了有关这个数据结构功能的一些提示,在dict中,先在字典的索引表中找到键(Key),然后再查找到相应的值。dict采用了key-value的存储方式。把数据放入dict的方法,除了初始化时制定外,还可以通过key放入。
这里写图片描述

在dict中,每个key只能对应一个value,但value可以对应不同的值。如果key不存在,dict就会报错。要避免key不存在的错误,有两种方案,一种就是通过in判断key是否存在,另外一个是通过dict提供的get()函数,如果key不存在,可以返回None或者是自己给定的value。
这里写图片描述

dict函数
可以使用dict函数,通过其他映射(比如其他字典)或者(键、值)对的序列建立字典。dict函数也可以通过关键字参数来创建字典。
这里写图片描述

dict的基本操作
len()将返回字典中“键-值“对的数量
d[k]返回关联到键k的值
d[k] = v 修改键k所对应的值
del d[k],删除键k的项

字典方法
就像其他内建类型一样,字典也有方法,这些方法很有用,但是可能不会像列表或者字符串那样被频繁使用,这里简单介绍两张较为常用dict方法,如果有特定需要的时候可以再去查找相应的方法。

  1. clear
    clear方法用于清楚dict中所有的项,这个是原地操作(类似于list.sort),无返回值。
    这里写图片描述

  2. copy
    copy方法返回一个具有相同键-值对的新字典,但这个方法实现的是浅复制,因为值本身就是相同的,而不是副本。
    这里写图片描述

可以看到,当在副本中替换值的时候,原始字典不受影响,但是,如果修改了某个值(原地修改,而不是替换),原始字典也会改变,因为同样的值也存储在原始字典中,就像上例中的machines列表一样。

避免这个问题的一种方法就是深复制,复制其包含的所有值,可以使用copy模块的decopy()函数完成操作。

这里写图片描述

dict的格式化字符串
如果使用的是dict(只以字符串为键的)而不是元组,会使字符串格式化更酷一些。在每个转换说明符的%字符后面,加上键(用圆括号括起来),后面再跟上其他的说明元素。

这里写图片描述

除了增加的字符串键之外,转换说明符还是像以前一样工作,当以这种方式使用字典的时候,只要所有给出的键都能在字典中找到,就可以使用任意数量的转换说明符了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值