擅长:python、mysql、java
<p>你的perl代码有点奇怪。print语句是否只是为了调试,以帮助您知道自己在哪里?为什么每次迭代都要打印数据结构?你可以用地图更简洁地编码。你知道吗</p>
<p>无论如何,对于dict的dict,dict的setdefault方法在这种情况下很方便:</p>
<pre><code>#!/usr/bin/python
import pprint
scenarioTenorValues = {}
tenor_list = [12,24,36,48,60,84,120,180,240,300,360]
scenario = None
tenor = None
for scenario in range(1,20):
print "scen: %d" % scenario
for tenor in tenor_list:
print "tenor: %d" % tenor
scenarioTenorValues.setdefault(scenario,{})[tenor] = 0
pprint.pprint(scenarioTenorValues)
</code></pre>
<p>下面是使用<code>Data::Dump</code>的perl结果片段:</p>
<pre><code>scen entered 2
tenor entered 12
{
1 => { 12 => 0, 24 => 0, 28 => 0, 36 => 0, 60 => 0, 84 => 0, 120 => 0, 180 => 0, 240 => 0, 300 => 0, 360 => 0 },
2 => { 12 => 0 },
}
</code></pre>
<p>下面是使用<code>pprint</code>的python版本:</p>
<pre><code>scen: 2
tenor: 12
{1: {12: 0,
24: 0,
36: 0,
48: 0,
60: 0,
84: 0,
120: 0,
180: 0,
240: 0,
300: 0,
360: 0},
2: {12: 0}}
</code></pre>