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

使用两层嵌套for循环按货架通道(Aisle)分组输出商品列表的问题

使用两层嵌套for循环按货架通道(Aisle)分组输出商品列表的问题

嘿,我一眼就瞅出问题出在哪了!你当前代码里合并通道列表的方式错了,导致外层循环只跑了一次,根本没法按通道分组输出。咱们一步步来改:

问题根源

你写的aisles = [aisle1 + aisle2 + aisle3]是把三个通道的所有商品揉成了一个大列表,再把这个大列表塞进了另一个列表里。这就导致外层for aisle in aisles循环其实只遍历到一个元素(那个装着所有商品的大列表),自然只会输出Aisle: 1的内容。

修正方案

咱们得把每个通道作为独立的子列表放进aisles里,而不是把所有商品混在一起。然后用两层嵌套for循环分别遍历通道和每个通道里的商品:

# 每个通道对应的商品列表
aisle1 = ["Tomatoes", "Carrots", "Lettuce"]
aisle2 = ["Eggs", "Butter", "Cream"]
aisle3 = ["Pasta", "Rice", "Cereal"]

# 正确合并:把每个通道作为独立子列表存入aisles
aisles = [aisle1, aisle2, aisle3]
aisle_number = 1

# 外层循环:遍历每个通道
for aisle in aisles:
    print(f"Aisle: {aisle_number}")
    # 内层循环:遍历当前通道里的所有商品
    for item in aisle:
        print(f"Contains {item}")
    # 每个通道遍历完后,通道号加1
    aisle_number += 1

修正后的输出

运行上面的代码,就能得到你想要的结果:

Aisle: 1
Contains Tomatoes
Contains Carrots
Contains Lettuce
Aisle: 2
Contains Eggs
Contains Butter
Contains Cream
Aisle: 3
Contains Pasta
Contains Rice
Contains Cereal

额外小技巧(可选)

如果不想手动维护aisle_number变量,也可以用enumerate函数直接获取通道的索引(记得索引从0开始,所以要加1),代码会更简洁,还不容易出错:

aisles = [aisle1, aisle2, aisle3]

# 用enumerate同时获取索引和通道列表,start参数指定起始编号
for aisle_number, aisle in enumerate(aisles, start=1):
    print(f"Aisle: {aisle_number}")
    for item in aisle:
        print(f"Contains {item}")

这个写法同样符合两层嵌套for循环的要求哦~

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 10:24:51