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

Python中如何从整数列表按每三个一组提取元素?

按3个元素一组提取Python列表中的物品尺寸

你写的代码存在两个核心问题:

  • 遍历packages时,each是列表里的单个数值(比如2400、1000),对数字执行[3:]切片操作会直接触发类型错误
  • 逻辑上没有实现“每3个元素为一组”的拆分逻辑

下面是几种可行的解决方法:

方法1:利用已知的物品数量x拆分

既然已知x是物品总数,直接循环x次,每次计算对应组的起始索引:

packages = [2400, 1000, 800, 2400, 1000, 1000, 2400, 1000, 1000]
x = 3  # 已知的物品数量
for i in range(x):
    start_idx = i * 3
    l, w, h = packages[start_idx:start_idx+3]
    # 这里可对l、w、h做后续处理,比如打印
    print(f"物品{i+1}: 长{l}, 宽{w}, 高{h}")

方法2:通过列表长度自动分组(无需提前知道x)

如果不想依赖x的值,直接根据列表长度和步长3遍历索引:

packages = [2400, 1000, 800, 2400, 1000, 1000, 2400, 1000, 1000]
for i in range(0, len(packages), 3):
    l, w, h = packages[i:i+3]
    print(f"物品{(i//3)+1}: 长{l}, 宽{w}, 高{h}")

方法3:用生成器封装分组逻辑(复用性更强)

把按3个元素分组的逻辑封装成生成器,方便在多个场景复用:

def split_into_threes(lst):
    for i in range(0, len(lst), 3):
        yield lst[i:i+3]

packages = [2400, 1000, 800, 2400, 1000, 1000, 2400, 1000, 1000]
for idx, (l, w, h) in enumerate(split_into_threes(packages), 1):
    print(f"物品{idx}: 长{l}, 宽{w}, 高{h}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:52:42