我一直在试图为我的朋友解决问题。但是,这似乎是bug我,因为我无法映射两个文件中的键值。Python Dictonary - 两个文件 - 根据关键值乘以值/属性
问题描述:
第一个文件(sales.txt)的内容:
Apple 30
Grape 90
Cup 35
Toy 100
Apple 50
Grape 51
Toy 83
第二个文件(price.txt)的内容:
Apple 1.3
Grape 0.99
Cup 1.5
Toy 15
的工作就是打印总价格。在这种情况下,我们需要打印3041.09。
我知道一个事实,即我们需要使用字典并根据关键字映射两个字典。因此,我根据自己的知识编写了代码。 (非常抱歉,如果它是愚蠢的!)
f = "sales.txt"
d={}
for line in open(f):
a=line.split()
key, values = str(a[0]), int(a[1])
d.setdefault(key, []).append(int(values))
print(d)
d = dict((key, sum(values)) for key, values in d.items())
print(d)
g = "price.txt"
dy={}
for line in open(g):
b=line.split()
unit, price = str(b[0]), float(b[1])
dy.setdefault(unit, []).append(float(price))
print(dy)
total = 1.0
for i in range(0, len(d)):
if d[key] == dy[unit]:
total = d.values*dy.price
print(total)
问题发生在条件,因为它没有进入循环。更正?
,你永远不更新'key'或'unit' 。 – James
你能简单解释一下吗? – HackersBusy