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

如何修复Python列表仅重复显示最后一个元素、不显示其余元素的问题?

问题:购物车订单重复显示最后一个商品的解决方法

问题现象

运行代码后,所有订单行都重复显示最后一个商品「Chicken」,无法正确展示「Fries」「Nuggets」等其他商品的对应信息。

问题原因

原代码里的第一个for循环遍历商品列表时,每次把补全空格后的商品名赋值给变量carts,循环结束后carts只会保留最后一次循环的结果(也就是「Chicken」)。第二个循环遍历数量和价格时,一直复用这个固定的carts变量,自然所有行都显示同一个商品名。

修复后的代码

cart = ['Fries','Nuggets','Chicken']
quantity = [1, 2, 3]
price = [123, 45, 65]
amount = 0

def Check_Inventory():
    print(f'Orders \t\t\t\t Qty. \t\t Price (php) \n')
    
    # 同时遍历商品、数量、价格三个列表,一次处理一行数据
    for item, qty, prices in zip(cart, quantity, price):
        # 用ljust方法快速将商品名补全到10个字符宽度,比while循环更简洁
        formatted_item = item.ljust(10)
        print(f'{formatted_item} \t\t\t {qty} \t\t {prices}')
        # 可选:计算总价
        global amount
        amount += qty * prices
    
    print(f'\n Total: \t\t\t\t\t {amount} \n')

Check_Inventory()

修复说明

  1. 用zip(cart, quantity, price)同时遍历三个列表,确保每一行的商品、数量、价格一一对应。
  2. 用字符串的ljust(10)方法替代原有的while循环,快速将商品名左对齐并补全空格到指定宽度,代码更简洁高效。
  3. 额外补充了总价计算的逻辑(如果不需要可以删掉),让功能更完整。

输出结果

Orders                           Qty.            Price (php) 

Fries                            1               123
Nuggets                          2               45
Chicken                          3               65

 Total:                                          453 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:25:34