详解Python中的Dict
什么是dict?
dict全称为dictionary
(字典),人如其名,像字典一样可以根据索引定位到特定的文字。
在python的dict中,我们可以通过key来定位到特定的value。
如上图,这就是dict的内部结构。key vs value 这样的配对,key3再次套娃嵌套内部取出来也是一个dict。
如此反复,一个dict可以变得很多层次,但是特征还是key value一一配对,只是value能是普通类型也能是dict。
之前说了list是一连串的数据,唯一找到元素的方式是通过下标逐个寻觅,从某种角度来看,list算是一个有下标为key的字典了。(当然严格来说list和dict是完全不同的两种数据类型)。
说这么多,我们看看字典的代码示例:
dict1 = dict() dict1['location'] = 'guangdong' dict2 = {'name':'雷学委', 'langs':['java', 'scala', 'nodejs', 'python'] }
代码中的dict1 和 dict2 这两个都是字典。
我们下面看看dict的增删查改
跟list类似,dict内的元素说可以修改的(mutable)。
我们可以直接使用类似如下代码,对特定键的值重新赋值。
dict['key1'] = new_value #对dict对象的key1键重新赋值。
下面我们直接看代码,一遍过一下添加/删除/更改元素以及清空字典的操作。
#!/usr/bin/env python # -*- coding: utf-8 -*- # @time : 2021/11/3 11:34 下午 # @author : leixuewei # @csdn/juejin/wechat: 雷学委 # @xueweitag: codingdemo # @file : __init__.py.py # @project : hello # 比如学委的信息作为一个字典 info_dict = dict() print('info_dict:', info_dict) # 添加元素到信息字典 info_dict['name'] = '雷学委' print('info_dict:', info_dict) # 更新为英文名 info_dict['name'] = 'lei_xue_wei' # 或者改为 'levin' info_dict['blogs'] = '93' # 目前发表了93个博客文字。 info_dict['gongzhong_hao'] = '【雷学委】' # 欢迎过来关注支持 print('info_dict:', info_dict) print('gongzhong_hao:', info_dict['gongzhong_hao']) del info_dict['blogs'] # 删除元素 print('info_dict:', info_dict) info_dict.clear() print('info_dict:', info_dict) # clear 清空元素后可以打印dict del info_dict # 直接删除整个信息字典 # print('info_dict:', info_dict) 不能在打印了
效果如下:
特别指出,为了让程序不会中断,我们拿到一个陌生的dict通常会写类似如下代码:
#我们也经常会用这种写法,来获取某个key的值,这样程序不会被异常中断 gongzhonghao = info_dict['gongzhong_hao'] if 'gongzhong_hao' in info_dict else 'n/a' print('gongzhong_hao:', gongzhonghao)
总结
dict使用起来很方便,非常轻松就根据某个key定位到值了。
我们开发中经常用到这种结构,不管是python/java,几乎所有开发都会用到字典类型。
所以python初学者务必把dict操作搞熟练,更多函数可以看dict的源码
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!
上一篇: Java中常用数据类型的输入输出详解
下一篇: Golang学习--TOML配置处理
推荐阅读
-
Android中关于Notification及NotificationManger的详解
-
Android从网络中获得一张图片并显示在屏幕上的实例详解
-
iOS应用开发中对UIImage进行截取和缩放的方法详解
-
详解iOS中UIButton的三大UIEdgeInsets属性用法
-
详解HTML5中rel属性的prefetch预加载功能使用
-
Python中的类学习笔记
-
Python中的自定义函数学习笔记
-
浅谈Python3中strip()、lstrip()、rstrip()用法详解
-
python实现去除下载电影和电视剧文件名中的多余字符的方法
-
详解iOS开发中UITableview cell 顶部空白的多种设置方法