You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:使用带break、continue的for循环查找列表首个养狗的人,迭代不超2次

Python代码实现解答

完整可运行代码

# 给定的人员列表
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
    # 迭代次数超过2次直接终止循环
    if iteration_count > 2:
        break
    # 当前人员养的不是狗,跳过本轮后续逻辑进入下一次迭代
    if value['pet'] != 'Dog':
        continue
    # 找到符合条件的人员,赋值后终止循环
    first_dog_person = value
    break

# 结果验证
print(first_dog_person)
print(f"迭代次数:{iteration_count}")

逻辑说明

  • break使用场景:两处用到,一是迭代次数超过2次时终止循环,满足迭代次数限制要求;二是找到第一个养狗的人后直接终止循环,无需遍历后续元素。
  • continue使用场景:当前迭代的人员养的不是狗时,跳过本轮后续的赋值逻辑,直接进入下一次迭代。
  • 初始值为None的first_dog_person处理:如果前2次迭代都没找到养狗的人,变量会保持None,后续可直接通过if first_dog_person is None判断是否找到结果,比空列表的判断逻辑更简洁。

运行输出结果

{'name': 'Katie', 'age': 30, 'job': 'Teacher', 'pet': 'Dog', 'pet_name': 'Frank'}
迭代次数:2

内容的提问来源于stack exchange,提问作者imkusoh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 07:57:00