刚学python。购物车的功能不会做。

2、现有商品列表如下:
products=[["iphone",6888],["MacPro",14800],["小米 6",2499],["Coffee",31],["Book",60]],
a) 把嵌套列表转换为字典 dict。在此基础上实现一个类似购物车的语句,用户循环输入编号可以将列表内的商品储
存到一个新的列表里面,当用户输入Q时退出循环。

把嵌套列表转换为字典 dict。
dic = {k:v for k,v in products}

你题目的解答代码如下:

products=[["iphone",6888],["MacPro",14800],["小米 6",2499],["Coffee",31],["Book",60]]
# 把嵌套列表转换为字典 dict。
dic = {k:v for k,v in products}
newlist=[]
pricesum = 0
while True:
    print('******** 菜单 **********')
    for i,(k,v) in enumerate(dic.items()):
        print(f"  编号:{i+1} 商品: {k} 价格:{v}")
    num = input('输入编号(q退出):')
    if num in ['Q','q']:
        break
    num = int(num)
    if 1<=num<=len(dic):
        name = list(dic.keys())[num-1]
        newlist.append(name)
        print(f'{name} 加入购物车')
        print("购物车:", newlist)
        pricesum += dic[name]
        print("价格总和:",pricesum)
    else:
        print('没有找到输入的编号')

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

把嵌套列表转换为字典 dict 直接用 dict(products) 就可以实现,其他功能实现见下方代码:


def goods_list(produ_dict):
    index = 1
    for goods in produ_dict.keys():
        print('%d.%s,价格为:%s' % (index, goods, produ_dict[goods]))
        index += 1


def main(produ):
    produ_dict = dict(produ)
    print(produ_dict)
    goodes, prices = [], []
    while True:
        goods_list(produ_dict)
        select = input("请选择要购买的商品编号,按q退出:")
        if select.lower() == 'q':
            break
        try:
            goods, price = produ[int(select) - 1]
            print("商品%s已加入购物车,价格为:%s\n" % (goods, price))
            goodes.append(goods)
            prices.append(int(price))
        except:
            print("编号输入错误,请重新输入!\n")
    print("\n购物车所有商品为:%s,总价为%d" % (str(list(zip(goodes, prices))), sum(prices)))


if __name__ == '__main__':
    products = [["iphone", 6888], ["MacPro", 14800], ["小米 6", 2499], ["Coffee", 31], ["Book", 60]]
    main(products)

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!