Python 遍历字典的8种方法

终结者T800
• 阅读 467

遍历字典是Python中常见的操作,可以很方便的访问字典中的键和值,以执行各种任务。

本文将介绍Python中遍历字典的8种方法,包括for循环、字典方法和推导式等。

方法一:for循环遍历字典

使用for循环是最常见的遍历字典的方法。您可以分别遍历字典的键、值或键值对。

以下是一些示例:

# 创建一个示例字典
student_grades = {"Alice": 95, "Bob": 88, "Charlie": 92, "David": 78}

# 遍历字典的键
for name in student_grades:
    print(name)

# 遍历字典的值
for grade in student_grades.values():
    print(grade)

# 遍历字典的键值对
for name, grade in student_grades.items():
    print(f"{name}: {grade}")

通过使用for循环,可以轻松访问字典中的元素。这对于执行各种操作,如查找、过滤或转换字典中的数据非常有用。

方法二:字典方法items()遍历

使用items()方法可以一次性获取字典中的键值对,然后在for循环中遍历它们。这是一种方便的方法,尤其适用于需要同时访问键和值的情况。

# 创建一个示例字典
student_grades = {"Alice": 95, "Bob": 88, "Charlie": 92, "David": 78}

# 使用items()方法遍历字典
for name, grade in student_grades.items():
    print(f"{name}: {grade}")

items()方法返回一个包含键值对的元组,可以在for循环中解包这些元组以获取键和值。

方法三:字典方法keys()和values()遍历

使用keys()方法可以获取字典中的键,使用values()方法可以获取字典中的值。可以分别遍历键和值,如下所示:

# 创建一个示例字典
student_grades = {"Alice": 95, "Bob": 88, "Charlie": 92, "David": 78}

# 使用keys()方法遍历字典的键
for name in student_grades.keys():
    print(name)

# 使用values()方法遍历字典的值
for grade in student_grades.values():
    print(grade)

这两种方法可以在for循环中单独访问键或值,根据需要执行不同的操作。

方法四:字典推导式

字典推导式是一种紧凑的方式来创建新的字典或从现有字典生成新的字典。可以在字典推导式中遍历原字典的键和值,并根据条件创建新的键值对。

以下是一个示例:

# 创建一个示例字典
student_grades = {"Alice": 95, "Bob": 88, "Charlie": 92, "David": 78}

# 使用字典推导式创建新字典,只包含成绩大于90的学生
top_students = {name: grade for name, grade in student_grades.items() if grade > 90}
print(top_students)

在上面的示例中,使用字典推导式创建了一个新的字典top_students,其中包含成绩大于90的学生。

方法五:使用enumerate()函数

enumerate()函数可用于同时遍历字典的键和值,并提供索引。这对于需要记录元素的位置或索引的情况非常有用。

# 创建一个示例字典
student_grades = {"Alice": 95, "Bob": 88, "Charlie": 92, "David": 78}

# 使用enumerate()函数遍历字典的键和值
for index, (name, grade) in enumerate(student_grades.items()):
    print(f"学生#{index+1}: {name} - 成绩: {grade}")

在上面的示例中,我们使用enumerate()函数获取了每个键值对的索引,并将其一起打印出来。

方法六:使用iteritems()(Python 2.x)

在Python 2.x中,有一个名为iteritems()的方法,它返回一个迭代器,允许在for循环中以更高效的方式遍历字典的键值对。但需要注意的是,这个方法在Python 3.x中已被废弃,不再可用。

# 创建一个示例字典(仅适用于Python 2.x)
student_grades = {"Alice": 95, "Bob": 88, "Charlie": 92, "David": 78}

# 使用iteritems()方法遍历字典
for name, grade in student_grades.iteritems():
    print(f"{name}: {grade}")

在Python 3.x中,不再使用iteritems()方法,而应使用items()方法。

方法七:使用迭代器

如果内存限制较低或需要处理非常大的字典,可以使用迭代器来遍历字典。iter()函数用于创建字典的迭代器,然后使用next()函数来逐个获取键值对。

# 创建一个示例字典
student_grades = {"Alice": 95, "Bob": 88, "Charlie": 92, "David": 78}

# 创建字典的迭代器
iterator = iter(student_grades)

# 遍历字典并逐个获取键值对
while True:
    try:
        name = next(iterator)
        grade = student_grades[name]
        print(f"{name}: {grade}")
    except StopIteration:
        break

使用迭代器可以有效地处理大型字典,因为它不会一次性加载所有键值对到内存中。

方法八:使用回调函数

回调函数是一种自定义遍历字典的方法。可以定义一个回调函数,然后在遍历字典时调用它,以执行自定义操作。

# 创建一个示例字典
student_grades = {"Alice": 95, "Bob": 88, "Charlie": 92, "David": 78}

# 定义一个回调函数
def custom_callback(name, grade):
    print(f"{name}: {grade}")

# 遍历字典并调用回调函数
for name, grade in student_grades.items():
    custom_callback(name, grade)

使用回调函数可以实现更高度的自定义,例如将键值对写入文件、将数据插入数据库等。

总结

遍历字典是Python中常见的操作,有多种方法可供选择,取决于需求和代码的简洁性。不同的方法适用于不同的情况,选择合适的遍历方法可以使代码更加清晰和高效。

点赞
收藏
评论区
推荐文章
CuterCorley CuterCorley
4年前
Python 字典 使用技巧
1.遍历字典的3种方式Python3中:pythond{'x':1,'y':2,'z':3}1.遍历keys:pythonforkind:print(k)print(dkey)或者pythonforkind.keys():print(k)print(dkey)2.遍历val
Karen110 Karen110
4年前
如何来理解Python中的字典数据类型
大家好,我是IT共享者,人称皮皮。今天给大家讲解下Python中的字典数据类型。一、前言字典是Python中的数据类型,可让将数据存储在键/值对中。二、什么是字典理解?字典理解是创建字典的一种优雅简洁的方法。字典理解优化使用字典理解优化函数。例:字典理解例:squaredictnum:numnumfornuminrange(1,1
小万哥 小万哥
1年前
Python - 字典2
Python访问字典项您可以通过在方括号内引用其键名来访问字典的项:示例,获取"model"键的值:Pythonthisdict"brand":"Ford","model":"Mustang","year":1964xthisdict,,,,,,,,,看完
Python进阶者 Python进阶者
3年前
如何来理解Python中的字典数据类型
大家好,我是IT共享者,人称皮皮。今天给大家讲解下Python中的字典数据类型。一、前言字典是Python中的数据类型,可让将数据存储在键/值对中。二、什么是字典理解?字典理解是创建字典的一种优雅简洁的方法。字典理解优化使用字典理解优化函数。例:字典理解例:squaredictnum:numnumfornuminrange(1,11)
Bill78 Bill78
4年前
Python 字典常用方法总结
Python字典可存储任意类型对象,如字符串、数字、元组……优点:取值方便,速度快1,创建字典字典由键(key)和对应值(value)成对组成。字典也被称作关联数组或哈希表。基本语法如下:dict{'Alice':'2341','Beth':'9102','Cecil':'3258'}注意:每个键与值用冒号隔开(:)
陈占占 陈占占
3年前
python 字典
字典(dict):以键值对的方式存在,以大括号为标志、在字典里面键是不能修改的,值可以修改语法格式:字典名{key1:value1,key2:value2,.......}note:是无序的类型,建必须唯一,值不必。索引是以键为下标,不能索引键对应的值,键不能为列表特点:1.键值之间必须用冒号(:)隔开2.项与项之间必须用逗号(,)隔开3.字典中的键必须
Stella981 Stella981
3年前
Python之dict详解
Python字典是另一种可变容器模型(无序),且可存储任意类型对象,如字符串、数字、元组等其他容器模型。本次主要介绍Python中字典(Dict)的详解操作方法,包含创建、访问、删除、其它操作等,需要的朋友可以参考下。字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:1.创建字典1234567\
Stella981 Stella981
3年前
C#创建安全的字典(Dictionary)存储结构
  在上面介绍过栈(Stack)的存储结构,接下来介绍另一种存储结构字典(Dictionary)。 字典(Dictionary)里面的每一个元素都是一个键值对(由二个元素组成:键和值) 键必须是唯一的,而值不需要唯一的,键和值都可以是任何类型。字典(Dictionary)是常用于查找和排序的列表。 接下来看一下Dictionary的部分方法和类的底
Stella981 Stella981
3年前
Redis面试:八问字典内部构造与rehash,这谁顶的住啊!
字典是一种用于保存键值对的抽象数据结构,也被称为查找表、映射或关联表。在字典中,一个键(key)可以和一个值(value)进行关联,这些关联的键和值就称之为键值对。抽象数据结构,啥意思?就是可以需要实际的数据结构是实现这个功能。抽象,意味着它这是实现功能的标准,凡是能够完成这些功能的都可以是其实现。redis的字典
小万哥 小万哥
1年前
Python - 字典1
字典用于存储键值对形式的数据。字典是一个有序、可更改的集合,不允许重复。从Python3.7版本开始,字典是有序的。在Python3.6及更早版本中,字典是无序的。字典用花括号编写,具有键和值:示例,创建并打印一个字典:Pythonthisdict"bra
小万哥 小万哥
1年前
Python - 字典4
复制字典您不能简单地通过输入dict2dict1来复制一个字典,因为dict2只会成为dict1的引用,对dict1的更改也会自动应用于dict2。有多种方法可以复制字典,一种方法是使用内置的copy()方法。示例,使用copy()方法制作字典的副本:py