首页 > 解决方案 > 在 for 循环中使用 break 和 continue 来遍历字典

问题描述

我是初学者,需要一些帮助。我需要使用带有 break 的 for 循环并继续在列表中找到第一个养狗的人。迭代次数不应超过 2。

这是给定的列表:

people = [
    {'name': "Daniel", 'age': 29, 'job': "Engineer", 'pet': "Cat", 'pet_name': "Gato"}, 
    {'name': "Katie", 'age': 30, 'job': "Teacher", 'pet': "Dog", 'pet_name': "Frank"},
    {'name': "Owen", 'age': 26, 'job': "Sales person", 'pet': "Cat", 'pet_name': "Cosmo"},
    {'name': "Josh", 'age': 22, 'job': "Student", 'pet': "Cat", 'pet_name': "Chat"},
    {'name': "Estelle", 'age': 35, 'job': "French Diplomat", 'pet': "Dog", 'pet_name': "Gabby"},
    {'name': "Gustav", 'age': 24, 'job': "Brewer", 'pet': "Dog", 'pet_name': "Helen"}
]

并给出了以下代码开始:

first_dog_person = None
iteration_count = 0
for value in people:
    iteration_count += 1

我的思考过程是使用 if 语句遍历前两个键并找到等于“Dog”的值。但是我无法在脑海中想象它来输入代码。

我还学习了如何为 ex 创建一个空列表。first_dog_person = [] 并将键、值对附加到新列表中,但我不知道如何使元素等于键(first_dog_person = None)。

标签: pythonfor-loop

解决方案


尝试使用 if 语句,如下例所示:

first_dog_person = None
iteration_count = 0
for value in people:
    iteration_count += 1
    
    # To ensure that iteration won't exceed 2
    if iteration_count == 2:
       break
    
    if value['pet'] == 'Dog':
        first_dog_person = value

如果您想检查当前字典项的键值,只需将其传递到方括号中,例如

价值['宠物']

在上面的例子中。

在确保您的项目值符合要求后,您可以简单地将其分配给创建的变量“first_dog_person”。

请务必查看 Python 文档并阅读一些数据结构 -字典


推荐阅读