Python遍历数组的for循环能否嵌套if-else?如何修正全输出drink的问题
问题根源
你编写的循环直接遍历了food数组的元素值,而非元素对应的下标,字符串类型的食物名称和数字做相等判断永远返回False,所有逻辑都走到else分支,因此输出全为drink。
解决方法
可以用enumerate()函数在遍历数组时同时获取下标和对应的元素值,再通过下标判断分类即可:
food = ['chicken', 'banana', 'milk', 'OJ', 'pork', 'apple'] for index, item in enumerate(food): if index == 1 or index == 5: print("fruit") elif index == 0 or index == 4: print("meat") else: print("drink")
运行后输出结果和你要求的完全一致:
meat fruit drink drink meat fruit
如果你希望后续调整数组顺序后分类逻辑不受影响,也可以直接基于元素值判断分类,可维护性更高:
food = ['chicken', 'banana', 'milk', 'OJ', 'pork', 'apple'] # 提前定义分类规则,新增食物时只需调整对应集合即可 fruit = {'banana', 'apple'} meat = {'chicken', 'pork'} for item in food: if item in fruit: print("fruit") elif item in meat: print("meat") else: print("drink")
内容的提问来源于stack exchange,提问作者ViscoseCar
相关产品推荐
相关产品推荐

