【发布时间】:2011-01-28 15:40:44
【问题描述】:
我是 Python 新手,正在尝试理解列表推导,以便在我的代码中使用它。
pricelist = {"jacket":15, "pants":10, "cap":5, "baseball":3, "gum":1}
products_sold = []
while True:
product_name = input("what is the name of the product")
product = {}
customer_name = input("what is the name of the customer")
#customer is shopping
product[sell_price] = pricelist[product_name]
product["quantity"] = input("how many items were sold?")
#append the product to a dict
products_sold.append(product)
现在我想要一个整个交易的字典,应该是这样的:
transaction = {"customer_name":"name",
"sold":{"jacket":3, "pants":2},
"bought":{"cap":4, "baseball":2, "gum":"10"}}
我将如何创建一个字典,并通过列表理解为其分配键和值?我查看了示例,并且理解了它们,但我不知道如何将它们应用到我的代码中。
我的意图是将我的产品列表转换为字典(交易)列表,其中包含以不同方式包含相同信息的信息。
【问题讨论】:
-
product是一个字典吗?products_sold最终会成为一个字典列表,每个字典都有 1 个条目吗? -
您的问题需要澄清一下。你的意思是你想通过你的循环运行几次,一旦你完成,从
customer_name、product和products_sold的内容创建你的事务字典(我假设你也有一个products_bought, 正确的?)。此外,您似乎混淆了dict和list。您附加到list,即[].append()。 -
quantity_sold和"Jenny"来自哪里? -
这个问题目前无法回答。如果您可以重写示例代码以使其正常工作,或正确传达您的意图,您可能会得到一个很好的答案。在那之前,我会投票结束。
-
您应该在尝试将其转换为
transaction字典之前立即添加一个示例,说明products_sold的外观。
标签: python list list-comprehension