我有一本字典和一套如下:
fundprices = {
'A' : 20,
'B' : 20,
'C' : 10,
'D' : 15,
'E' : 10,
'F' : 15,
'G' : 35,
'H' : 20,
'I' : 10,
'J' : 5
}
dollaramount = {
100000.0,
100000.0,
50000.0,
300000.0,
50000.0,
100000.0,
100000.0,
150000.0,
50000.0,
0
}
我正在尝试创建第三个字典,该字典是由字典划分的集合的结果,具有以下代码:
orderamount = []
for i in fundprices.key(), dollaramount.key():
orderamount.append(dollaramount[i] / fundprices[i])
print orderamount
orderamount
与基金价格具有相同的关键字。但是,我得到'dict'对象没有属性因此。在这种情况下,dollaramount是从2个词典中的另一个计算创建的集合。如果在创建设置的dollaramount时更容易添加密钥,请告诉我。我该如何解决这个问题?
答案 0 :(得分:0)
from collections import OrderedDict
fundprices = {
'A' : 20,
'B' : 20,
'C' : 10,
'D' : 15,
'E' : 10,
'F' : 15,
'G' : 35,
'H' : 20,
'I' : 10,
'J' : 5
}
dollaramount = [
100000.0,
100000.0,
50000.0,
300000.0,
50000.0,
100000.0,
100000.0,
150000.0,
50000.0,
0]
ordered_fundprices = OrderedDict(sorted(fundprices.items()))
for i, j in zip(ordered_fundprices.keys(), dollaramount):
print i, j
for i, j in zip(ordered_fundprices.itervalues(), dollaramount):
print j / i
你想要这样的结果吗?
A 100000.0
B 100000.0
C 50000.0
D 300000.0
E 50000.0
F 100000.0
G 100000.0
H 150000.0
I 50000.0
J 0
5000.0
5000.0
5000.0
20000.0
5000.0
6666.66666667
2857.14285714
7500.0
5000.0
0
答案 1 :(得分:0)
使用list
而不是set
作为dollaramount
实际的目标,
set([0, 50000.0, 100000.0, 150000.0, 300000.0])
然后,我们有,
orderamount = [amount/t[1] for amount, t in zip(dollaramount, sorted(fundprices.items()))]
print(orderamount)
# [5000.0, 5000.0, 5000.0, 20000.0, 5000.0, 6666.666666666667, 2857.1428571428573, 7500.0, 5000.0, 0]
如果您想要一本能够记住首次插入密钥的字典,请使用collections.OrderedDict
。