I tried to do calculation in python using values accessed for any pair of two rows when iterating through a tuple list but I received the type error as below. Does anyone have idea how to solve this? Thanks!
The code is shown below:
for ws1 in ccy_results:
for ws2 in ccy_results:
variance = ws1.WS * ws2.WS
K += variance
Error message:
K += variance
TypeError: 'float' object is not iterable
An extract of ccy_results is shown below:
[ws(Qualifier='AUD', Curve='Libor3m', Tenor='1m', WS=214000000.0),
ws(Qualifier='AUD', Curve='Libor3m', Tenor='2y', WS=-106000000.0),
ws(Qualifier='AUD', Curve='Libor3m', Tenor='6m', WS=213000000.0),
ws(Qualifier='CHF', Curve='Libor6m', Tenor='15y', WS=-200000000.0),
ws(Qualifier='CHF', Curve='Libor6m', Tenor='20y', WS=540000000.0),
ws(Qualifier='CHF', Curve='Libor6m', Tenor='30y', WS=756000000.0)]
I tried to do checking by printing ws1.WS using the below code but all WS in ccy_results appear. I think this is the reason. How can I solve this issue?
for ws1 in ccy_results:
for ws2 in ccy_results:
print(ws1.WS)
import collections
ws = collections.namedtuple('ws',('Qualifier', 'Curve', 'Tenor', 'WS'))
ccy_results = [ws(Qualifier='AUD', Curve='Libor3m', Tenor='1m', WS=214000000.0),
ws(Qualifier='AUD', Curve='Libor3m', Tenor='2y', WS=-106000000.0),
ws(Qualifier='AUD', Curve='Libor3m', Tenor='6m', WS=213000000.0),
ws(Qualifier='CHF', Curve='Libor6m', Tenor='15y', WS=-200000000.0),
ws(Qualifier='CHF', Curve='Libor6m', Tenor='20y', WS=540000000.0),
ws(Qualifier='CHF', Curve='Libor6m', Tenor='30y', WS=756000000.0)]
K = []
for ws1 in ccy_results:
for ws2 in ccy_results:
variance = ws1.WS * ws2.WS
K += variance