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

如何仅使用列表推导式实现书店订单嵌套列表的元素更新

用列表推导式实现订单总价计算

嘿,这事儿好办!我把你原来用循环实现的订单总价计算逻辑,改成纯列表推导式的版本了,完全能得到和之前一致的输出结果:

orders = [
    [1, ("5464", 4, 9.99), ("8274",18,12.99), ("9744", 9, 44.95)],
    [2, ("5464", 9, 9.99), ("9744", 9, 44.95)],
    [3, ("5464", 9, 9.99), ("88112", 11, 24.99)],
    [4, ("8732", 7, 11.99), ("7733", 11,18.99), ("88112", 5, 39.95)]
]

# 纯列表推导式实现需求逻辑
m1_list = [
    [order[0]] + [
        (book_id, quantity * price + 10 if quantity * price < 100 else quantity * price)
        for book_id, quantity, price in order[1:]
    ]
    for order in orders
]

print(m1_list)

代码逻辑说明:

  • 外层列表推导式遍历每个订单order,先保留订单编号order[0]
  • 内层列表推导式处理订单里的每一个图书条目:
    1. 解包元组得到图书编号book_id、数量quantity和单价price
    2. 计算基础总价quantity * price,如果总价小于100就额外加10,否则直接使用基础总价
    3. 将图书编号和最终总价组成新元组,收集到内层列表中
  • 用+把订单编号和处理后的图书条目列表拼接成完整的订单数据,最终所有订单组成结果列表m1_list

运行这段代码后,你会得到和之前循环版本完全一样的输出结果哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:30:45