KeyError looping through multiple values per key
This question already has an answer here:
T
is the key, so you should iterate with for T in instruments
:
import math
instruments = {}
def add_instrument(par, T, coup, price, compounding_freq = 2):
instruments[T] = (par, coup, price, compounding_freq)
add_instrument(100, 0.25, 0., 97.5)
add_instrument(100, 0.5, 0., 94.9)
add_instrument(100, 1.0, 3., 90.)
add_instrument(100, 1.5, 8, 96., 2)
for T in instruments:
par, coupon, price, freq = instruments[T]
if coupon == 0:
print(T)
If you use for T in instruments.items()
, T
becomes a tuple of (key, value)
. When you then look for instruments[T]
, there's no such key in the dict.
You could also unpack the value tuple directly if you insist on using items()
:
for t, (par, coup, price, freq) in instruments.items():
if coup == 0:
print(t)
It outputs:
0.25
0.5
链接地址: http://www.djcxy.com/p/30380.html
上一篇: 我如何跳过`foreach`循环的迭代?
下一篇: KeyError循环每个键的多个值