社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

使用 for 循环遍历 Python 字典的 3 种方法 !

AI科技大本营 • 1 年前 • 211 次点击  
作者 | 快快
来源 | 快学Python
在Python中,如何使用“for”循环遍历字典?
今天我们将会演示三种方法,并学会遍历嵌套字典。
在实战前,我们需要先创建一个模拟数据的字典。
dict_1 = {'Name''Zara''Age'7'Class''First','Address':'Beijing'}

1、For 循环 + 索引进行迭代

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

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

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

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

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

2、.keys( ) + 索引进行迭代

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

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

3、.items( ) 进行迭代

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

print(dict_1.items())

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

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

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

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

for


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

进阶:遍历嵌套字典

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

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

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 k, v in dict_2.items():
    if type(v) is dict:
        for nk, nv in v.items():
            print(nk, "→", nv)

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

运行结果如下所示。

如果只想解压其中的部分字典,可以在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的字典,运行结果如下所示。

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

往期回顾

花 39 美金请AI画家弄了个Logo


Deepfake 技术换脸真假难辨!


基于 Python 的 8 种常用抽样方法


7岁男童因下棋太快,被机器人夹断手指?


分享

点收藏

点点赞

点在看

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/138462
 
211 次点击