Python: TypeError: 'float' object is not iterable
Python: TypeError: 'float' object is not iterable
我尝试在 python 中使用遍历元组列表时访问的任何两行对的值进行计算,但我收到如下类型错误。有谁知道如何解决这个问题?谢谢!
代码如下:
for ws1 in ccy_results:
for ws2 in ccy_results:
variance = ws1.WS * ws2.WS
K += variance
错误信息:
K += variance
TypeError: 'float' object is not iterable
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)]
我尝试使用以下代码通过打印 ws1.WS 来进行检查,但 ccy_results 中的所有 WS 都出现了。我想就是这个原因。我该如何解决这个问题?
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
列表的扩充赋值操作+=
等价于list.extend
,它的参数需要一个可迭代对象(左边的-表达式的一侧)。
改变
K += variance
到
K.append(variance)
Operation
Result
s.extend(t) or s += t
extends s with the contents of t (for the most part the same as s[len(s):len(s)] = t)
我尝试在 python 中使用遍历元组列表时访问的任何两行对的值进行计算,但我收到如下类型错误。有谁知道如何解决这个问题?谢谢!
代码如下:
for ws1 in ccy_results:
for ws2 in ccy_results:
variance = ws1.WS * ws2.WS
K += variance
错误信息:
K += variance
TypeError: 'float' object is not iterable
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)]
我尝试使用以下代码通过打印 ws1.WS 来进行检查,但 ccy_results 中的所有 WS 都出现了。我想就是这个原因。我该如何解决这个问题?
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
列表的扩充赋值操作+=
等价于list.extend
,它的参数需要一个可迭代对象(左边的-表达式的一侧)。
改变
K += variance
到
K.append(variance)
Operation | Result |
---|---|
s.extend(t) or s += t | extends s with the contents of t (for the most part the same as s[len(s):len(s)] = t) |