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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:15:03