捋一捋Python中的Dict(上)

简介: 正式的Python专栏第28篇,同学站住,别错过这个从0开始的文章!

学委前面分享了tuple/list,在Python中还有一个非常常见的数据容器就是dict!


什么是dict?

dict全称为dictionary(字典),人如其名,像字典一样可以根据索引定位到特定的文字。


在python的dict中,我们可以通过key来定位到特定的value。


image.png

如上图,这就是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) 不能在打印了

效果如下:


image.png

特别指出,为了让程序不会中断,我们拿到一个陌生的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的源码,不过学委下篇还会继续介绍更多操作。

目录
相关文章
|
4月前
|
存储 Python
一文掌握python数组字典dict()的全部用法(零基础学python(三))
一文掌握python数组字典dict()的全部用法(零基础学python(三))
105 0
|
4月前
|
Serverless Python
在Python中,用于实现哈希表的数据结构主要是字典(`dict`)
在Python中,用于实现哈希表的数据结构主要是字典(`dict`)
49 1
|
4月前
|
存储 Python
在Python中,字典(`dict`)的键(key)具有唯一性
在Python中,字典(`dict`)的键(key)具有唯一性
98 1
|
29天前
|
测试技术 Python 容器
Python接口自动化测试框架(基础篇)-- 常用数据类型dict
这篇文章详细介绍了Python中字典(dict)数据类型的使用,包括字典的创建、取值、增删改操作以及内置函数的应用,并探讨了字典的扩展特性,如键的唯一性和不可变性。
12 0
Python接口自动化测试框架(基础篇)-- 常用数据类型dict
|
1月前
|
JSON 算法 算法框架/工具
【python】python指南(十二):Json与dict、list互相转换
【python】python指南(十二):Json与dict、list互相转换
13 0
|
1月前
|
SQL 机器学习/深度学习 算法
【python】python指南(六):静态类型注解之Dict
【python】python指南(六):静态类型注解之Dict
24 0
|
1月前
|
Python
【Python】对key或values是datetime类型或时间字符串的字典dict排序
本文提供了针对字典中key为时间字符串或datetime类型时进行排序的解决方案,包括将时间字符串转换为datetime对象排序和直接对datetime类型的key排序的方法。
31 0
|
2月前
|
存储 JSON JavaScript
【Python】已完美解决:TypeError: the JSON object must be str, bytes or bytearray, not dict
【Python】已完美解决:TypeError: the JSON object must be str, bytes or bytearray, not dict
65 1
|
3月前
|
存储 Python
Python中list, tuple, dict,set的区别和使用场景
Python中list, tuple, dict,set的区别和使用场景
|
3月前
|
存储 Python
Python中的模块对象__dict__
【6月更文挑战第13天】
26 4