利用For循环遍历Python字典的三种方法实例


Posted in Python onMarch 25, 2022

前言

在Python中,如何使用“for”循环遍历字典?

今天我们将会演示三种方法,并学会遍历嵌套字典。

在实战前,我们需要先创建一个模拟数据的字典。

dict_1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First','Address':'Beijing'}

利用For循环遍历Python字典的三种方法实例

方法 1:使用 For 循环 + 索引进行迭代

在 Python 中遍历字典的最简单方法,是将其直接放入for循环中。

Python 会自动将dict_1视为字典,并允许你迭代其key键。然后,我们就可以使用索引运算符,来获取每个value值。

for key in dict_1:
    print(key, ":", dict_1[key])

利用For循环遍历Python字典的三种方法实例

如果你想按照字母顺序排列key键,可以使用sorted()方法,具体用法如下所示。

for key in sorted(dict_1):    print(key, ":", dict_1[key])

利用For循环遍历Python字典的三种方法实例

方法 2:使用 .keys( ) + 索引进行迭代

使用.keys()返回包含字典键的 Python 对象的方法,可以获得与方法1相同的结果。同样,它也需要与索引运算符结合使用。

for key in dict_1.keys():
    print(key, '-->', dict_1[key])

利用For循环遍历Python字典的三种方法实例

方法 3:使用 .items( ) 进行迭代

其实,遍历字典的最“pythonic”和优雅的方法,是使用.items()方法。

print(dict_1.items())

利用For循环遍历Python字典的三种方法实例

为了迭代transaction_data字典的键和值,您只需要“解包”嵌入在元组中的两个项目,如下所示:

for k,v in dict_1.items():
    print(k,">>",v)

利用For循环遍历Python字典的三种方法实例

需要注意,k和v只是“键”和“值”的标准别名,但你也可以选择其他命名约定。

比如,我们可以更换成a和b,也会有相同的输出。

for a,b in dict_1.items():
    print(a,"-",b)

利用For循环遍历Python字典的三种方法实例

进阶:遍历嵌套字典

有时候,我们会遇到比较复杂的字典——嵌套字典。

那么这种情况该如何办呢?

dict_2 = {"num_1":{'Name': 'Zara', 'Age': 7, 'Class': 'First','Address':'Beijing'},
          "num_2":{'Name': 'BOb', 'Age': 32, 'Class': 'Six','Address':'Shanghai'},
          "num_3":{'Name': 'Tom', 'Age': 25, 'Class': 'Second','Address':'Wuhan'}}

dict_2

利用For循环遍历Python字典的三种方法实例

为了解开属于每个嵌套字典的键值对,我们可以这样做:

for k, v in dict_2.items():
    if type(v) is dict:
        for nk, nv in v.items():
            print(nk, "→", nv)

通过if语句判断value值是不是字典,如果是,则使用前面提到的方法 3,使用 .items( ) 进行迭代输出。

运行结果如下所示。

利用For循环遍历Python字典的三种方法实例

如果只想解压其中的部分字典,可以在if语句中增加条件。

for k, v in dict_2.items():
    if type(v) is dict and k == 'num_2':
        for sk, sv in v.items():
            print(sk, "-->", sv)

只输出num_2的字典,运行结果如下所示。

利用For循环遍历Python字典的三种方法实例

以上,就是在Python中使用“for”循环遍历字典的小技巧了。

总结

到此这篇关于利用For循环遍历Python字典的三种方法的文章就介绍到这了,更多相关For循环遍历Python字典内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python使用BeautifulSoup库解析HTML基本使用教程
Mar 31 Python
完美解决python遍历删除字典里值为空的元素报错问题
Sep 11 Python
用python制作游戏外挂
Jan 04 Python
基于sklearn实现Bagging算法(python)
Jul 11 Python
python 类之间的参数传递方式
Dec 20 Python
python ubplot使用方法解析
Jan 10 Python
Python如何脚本过滤文件中的注释
May 27 Python
python文件读取失败怎么处理
Jun 23 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
Aug 07 Python
Python  Asyncio模块实现的生产消费者模型的方法
Mar 01 Python
python3读取文件指定行的三种方法
May 24 Python
python自动计算图像数据集的RGB均值
Jun 18 Python
Python装饰器详细介绍
Mar 25 #Python
python中数组和列表的简单实例
Mar 25 #Python
Python if else条件语句形式详解
python中的getter与setter你了解吗
Mar 24 #Python
Python编程中内置的NotImplemented类型的用法
Mar 23 #Python
pandas进行数据输入和输出的方法详解
Mar 23 #Python
基于Python编写简易版的天天跑酷游戏的示例代码
You might like
PHP中,文件上传
2006/12/06 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
destoon供应信息title调用出公司名称的方法
2014/08/22 PHP
Thinkphp多文件上传实现方法
2014/10/31 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
基于jQuery的图片剪切插件
2011/08/03 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
前台js对象在后台转化java对象的问题探讨
2013/12/20 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
2014/01/27 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
理解Koa2中的async&await的用法
2018/02/05 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
使用Python实现博客上进行自动翻页
2017/08/23 Python
Python unittest模块用法实例分析
2018/05/25 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
体育教育专业毕业生自荐信
2013/11/15 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
Golang 获取文件md5校验的方法以及效率对比
2021/05/08 Golang
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android
Redis实现一个账号只能登录一个设备
2022/04/19 Redis