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
相关产品推荐
相关产品推荐

