无法分配价值

时间:2018-07-08 22:57:08

标签: python dictionary

我在尝试为“杂货清单”分配值时遇到麻烦

具体来说,给定一个.txt文档,其中包含:

Grocery
Apple: 12
egg: 10
milk: 11

我正在尝试打开文件,并计算总价。到目前为止,我所拥有的:

shoplist={}
line=0

for item in open ("lab3demo.txt","r"):
    item= item.split(":")

    line+=1
    if line ==1:
        continue

    print (item)

到目前为止,它确实返回了['Apple',12\r\n'],等等。

但是,我随后尝试将价格指定为值price = shoplist[item],这是行不通的。由于我需要它来输出

item : price
item : price
item : price
total: total price

我无法做到。我应该怎么做?

我曾经尝试从字典开始,但是距离还不够远。

1 个答案:

答案 0 :(得分:0)

认为,您要尝试做的是:

  • 将行拆分为itemprice变量。
  • 将其添加到字典中,以item作为键,并以price作为对应值。

如果是这样,您就错了两件事。首先,在这里:

item= item.split(":")

这只是将item变成两个值对。您希望在两个单独的变量itemprice中使用这两个值,因此必须告诉Python:

item, price = item.split(":")

然后:

  

然后我尝试将价格指定为值price = shoplist[item]

您已经落后了。该操作将在item中查找shoplist,并将结果值存储在price中。但是您想将itemprice添加到shoplist上:

shoplist[item] = price

完成此操作后,在循环结束时,您将有一个像这样的字典:

{'Apple': '12', 'egg': '10', 'milk': '11'}

您仍然需要弄清楚如何:

  • item的{​​{1}}中的每个priceitems进行循环。
  • 以正确的格式打印shoplistitem中的每一个。
  • 将每个price从字符串转换为price
  • 将每个int值添加到price
  • 在循环之后以正确的格式打印total

但是您应该能够使所有工作正常进行。