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('没有找到输入的编号')
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
把嵌套列表转换为字典 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)
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!