首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python渐进-dict字典

dict使用key:value对的形式来储存数据。dict在存储数据的时候更加直观,因为作为key的索引可以用更易理解的方式存在。list和tuple的索引是冰冷的数字,不知道哪个是哪个。任何不可变变量都可以用作key,像数字,字符串,上一节所说的tuple都是不可变变量,它们都可以作为key;value的类型就更广了,所有不可变变量和可变变量都可以作为value。

6.3.1 dict的创建

dict使用大括号括起的逗号分隔的(key:value)对进行创建。比如说要记录学生的成绩,可以产生多个(学生姓名:学生成绩)的(key:value)对来进行创建。演示代码如下:

如果不确定字典里面到底有多少个元素,那么也可以先生成一个空的dict,再慢慢添加。演示代码如下:

上面的代码中,使用dict()来生成一个空字典是必要的。如果没有dict(),直接给b赋值的话会出现错误。

dict类型的数据还可以用二维数组来创建。先用list或者tuple生成多个(key,value)的序列,然后使用dict()进行类型转换,也可以生成一个字典。演示代码如下:

6.3.2 dict的访问

想要访问dict,只需要知道key值。

刚刚讲过,任何不可变变量都可以作为key值,数字,字符串,tuple都可以作为key值。演示代码段如下:

而list则不能作为key值

这里有一个有趣的小把戏,tuple里面其实是可以藏一个list的,这样tuple就变成了可变变量了。我们来看看它作为key会怎样。

可以看到,python很聪明地把这个小把戏戳穿了。tuple里面的list没能蒙混过关。

确定了key值,就可以通过key值获取数据。演示代码如下:

想要遍历dict,可以使用for语句进行。因为dict也是一个可迭代的类型。演示代码如下。

6.3.3 dict的增加和修改

如果想要增加一个key:value对,而dict里面不存在这个key,这个时候直接赋值即可。

如果key在dict里面已经存在了,那么赋值会修改原来的value值。

6.3.4 dict的删除

和list一样,想要删除dict的元素,可以通过del操作来删除。想要删除某个key:value对,只要使用del dict[key]操作就可以了。演示代码如下:

如果使用 del dict 会把整个dict删除。演示代码如下:

6.3.5 dict的字典推导式

和list类似,dict也有它的字典推导式,可以很快生成dict。只要了解list的列表推导式,应该很快就能够理解了。

6.3.6 使用dict构造二维数组

使用dict来构造二维数组,对比list会更加有可读性。比如说有三个学生 zhang,lee,zhao,分别进行了数学和语文考试,每个人分别有两个成绩。此时可以用两个dict来嵌套构成二维数组。下面展示了一个简单的嵌套字典。

访问的时候可以直接通过 学生和科目的key组合来定位。

如果需要修改可以通过两层的key来定位,再进行修改。

此时如果需要新增一个学生,需要先初始化一个dict,否则就会出错。

6.3.7 dict的有用方法

很多时候可能会想要知道dict里面都有什么key,用keys()方法就可以获取key的list。同时dict也有len()方法可以获取dict的长度。

这里要注意的是,keys()得到的list不是按照顺序排列的,也不是按照插入的顺序来排列的。python对于dict的key有一套二叉树排序,方便更快找到key。如果想要得到一个经过排序的key序列,可以对key序列使用sort()方法。

本文完

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180606G11WU600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券