繁体   English   中英

Python - Append 索引作为元组的订单列表

[英]Python - Append index from list of orders as a tuple

我需要定义一个名为 order_list(index_of_item, list_of_stocks, order_list) 的 function,它将索引、产品列表和订单列表作为参数。

这个 function 应该:

-> Append 一个元组,由库存列表指定索引处的产品描述和价格组成,并添加到订单列表中。

-> 从库存清单中产品的数量值中减去 1。

-> 如果现在数量为 0,则从库存清单中删除该产品。

这是此 function 的工作示例 -

测试:

items = ['11,Coca Cola Soft Drink 500ml,4,2', '12,L & P Soft Drink Lemon & Paeroa 500ml,4,1', '13,V Blue Drink can 500mL,3.5,8', '14,V Vitalise Energy Drink 500ml,3.5,5']
orders = []
add_to_orders(0, items, orders)
add_to_orders(1, items, orders)
print(orders)
print(items[0])
print(items[1])

产品列表中的项目描述如下 -

'11,可口可乐汽水 500ml,4,2'

这里11是该产品的代码,可口可乐软饮料 500 毫升- 产品名称, 4是产品的价格(4 美元),2 是产品的数量。

OUTPUT 预计:

[('Coca Cola Soft Drink 500ml', '4'), ('L & P Soft Drink Lemon & Paeroa 500ml', '4')]
11,Coca Cola Soft Drink 500ml,4,1
13,V Blue Drink can 500mL,3.5,8

这是我写的代码,但这只会正确打印第一行。 我不知道如何更改产品数量的值(减 1)

def order_list(index_of_item, list_of_stocks, order_list) :
    list1 = []
    for index in range(len(list_of_stocks)):
        list_of_items = list_of_stocks[index].split(",")
        item = list_of_items[1]
        price = list_of_items[2]
        qty = int(list_of_stocks[index][-1])
        list1.append((item, price))
        
    orders.append(list1[index_of_item])

**输出得到 - ** 在此处输入图像描述

尝试:

def add_to_orders(index_of_item, list_of_stocks, order_list):
    item = list_of_stocks[index_of_item]
    code, name, price, quantity = item.split(',')
    quantity = int(quantity)

    order_list.append((name, price))

    quantity -= 1

    if quantity >= 1:
        list_of_stocks[index_of_item] = ','.join([code, name, price, str(quantity)])
    else:
        del list_of_stocks[index_of_item]

解释:

我首先根据提供的索引并使用split将不同的项目从库存中取出。 然后我只将quantity转换为 integer 因为我们会从中减去 1。

到现在为止,您已经准备好 append 您想要orders的元组列表。

之后,您只需检查数量是否达到零。 如果没有,请使用','.join([code, name, price, str(quantity)])以原始格式构建一个新字符串

测试:

items = ['11,Coca Cola Soft Drink 500ml,4,2',
         '12,L & P Soft Drink Lemon & Paeroa 500ml,4,1',
         '13,V Blue Drink can 500mL,3.5,8',
         '14,V Vitalise Energy Drink 500ml,3.5,5']

orders = []
add_to_orders(0, items, orders)
add_to_orders(1, items, orders)
print(orders)
print(items[0])
print(items[1])

output:

[('Coca Cola Soft Drink 500ml', '4'), ('L & P Soft Drink Lemon & Paeroa 500ml', '4')]
11,Coca Cola Soft Drink 500ml,4,1
13,V Blue Drink can 500mL,3.5,8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM