python中,对字典的遍历很有用,平常编程中可能经常会用到。下面是几种常用的方法。
1. for循环遍历
stu_info = {"name": 'lily', "age": 18, "height": 170, "weight": 50}
# 遍历方法1
for i in stu_info: # 这种其实是遍历键
print(i) # 打印出来的只是键
# 遍历方法2
for key in stu_info.keys(): # 遍历键
print(f"{key}: {stu_info[key]}")
# 遍历方法3
for key, value in stu_info.items(): # 遍历键值
print(f"{key}: {value}")
# 遍历方法4:遍历值
for value in stu_info.values():
print(f"{value}")
2. 字典推导式:字典推导式是一种紧凑的方式来创建新的字典或从现有字典生成新的字典。可以在字典推导式中遍历原字典的键和值,并根据条件创建新的键值对。
# 创建一个新字典
stu_grades = {"amy": 90, "luke": 87, "lily": 78, "han": 70}
# 使用字典推导式创建新字典,只包含成绩大于80的学生
top_stus = {name: grade for name, grade in stu_grades.items() if grade > 80)
print(top_stus)
在上面的代码中,使用字典推导式创建了新的字典,返回成绩大于80的学生。
3. 使用enumerate()函数:可用于同时遍历字典的键和值,并提供索引。这对于需要记录元素的位置或索引的情况非常有用。
stu_grade = {"ali": 90, "lily": 87, "mark": 84, "pony": 94}
for index, (name, grade) in enumerate(stu_grade.items()): #这里的index索引从0开始
print(f"student#{index+1}: {name} -- grade: {grade}")
运行代码,返回
4. 使用迭代器:如果内存限制较低或需要处理非常大的字典,可以使用迭代器来遍历字典。iter()用于创建字典的迭代器,然后用next()函数逐个获取键值对。
stu_grades = {'berry': 90, 'cindy': 89, 'rick': 72, 'herb': 95}
# 创建iterator
iterator = iter(stu_grades)
while True:
try:
name = next(iterator) # 迭代器是对键的迭代
grade = stu_grades[name]
print(f"{name}: {grade}")
except StopIteration: # 当读到最后一个键值对就停止
break
使用迭代器可以有效处理大型字典,不需要一次性把所有键值对全加载到内存中。