次のプログラムがあります。
import QuantLib as ql
deposits = {ql.Period(1,ql.Weeks): 0.0023,
ql.Period(1,ql.Months): 0.0032,
ql.Period(3,ql.Months): 0.0045,
ql.Period(6,ql.Months): 0.0056}
for n, unit in [(1,ql.Weeks),(1,ql.Months),(3,ql.Months),(6,ql.Months)]:
print deposits([n,unit])
私がこのプログラムに期待していることは、次のとおりです。「数値」(つまり、1、1、3、6) と「単位」(つまり、週と月) の埋め込みリストで構成される辞書キーをループし、正しい値 (または率)。現在、行でエラーが発生しますprint deposits([n,unit])
。
これが私が得るエラーです:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 699, in runfile
execfile(filename, namespace)
File "C:\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 74, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)
File "TestFunction.py", line 16, in <module>
print deposits([n,unit])
TypeError: 'dict' object is not callable
私のファイルの名前はTestFunction.py
私はこの問題を回避する方法を知っています。これは、次のように辞書を 2 つのリストに変換する場所です。
depoMaturities = [ql.Period(1,ql.Weeks),
ql.Period(1,ql.Months),
ql.Period(3,ql.Months),
ql.Period(6,ql.Months)]
depoRates = [0.0023,
0.0032,
0.0045,
0.0056]
しかし、それはきちんとしたものでも洗練されたものでもありません。アドバイスをいただければ幸いです。