擅长:python、mysql、java
<p>Python列表不会自动增长;寻址不存在的索引是行不通的。通常使用<code>.append()</code>来实现:</p>
<pre><code>T_1 = []
for a in A_1:
nested = []
T_1.append(nested)
for y in y_1:
nested.append(T0_1 + ((q0_1 / k_1) * y) - (a / (2 * k_1)) * y**2))
</code></pre>
<p>请注意,您不再需要创建索引;您可以直接在<code>A_1</code>和<code>y_1</code>上循环<em>并使用公式中的值。在</p>
<p>另一种方法是使用占位符值创建一个空结构;例如<code>None</code>:</p>
^{pr2}$
<p>在这里,我使用<a href="http://docs.python.org/2/library/functions.html#enumerate" rel="nofollow">^{<cd5>}</a>向每个循环添加一个索引;这可以让您的蛋糕<em>和</em>吃掉它;从输入序列及其在序列中的位置访问一个值。在</p>
<p>但是,您的嵌套列表最简单的方法是使用<a href="http://docs.python.org/2/reference/expressions.html#list-displays" rel="nofollow">list comprehensions</a>的嵌套集生成:</p>
<pre><code>T_1 = [[T0_1 + ((q0_1 / k_1) * y) - ((a / (2 * k_1)) * y**2) for i in y_1] for a in A_1]
</code></pre>
<p>这里<code>[expression for variable in iterable]</code>在循环的每次迭代的左侧执行表达式。<code>A_1</code>上的外部循环为循环中的每个<code>a</code>生成一个新列表。这个新列表本身就是一个列表理解,在<code>y_1</code>上循环并为每个元素生成新的值(您的公式)。在</p>
<p>注意,现在我们不再需要生成索引<em>或</em>使用<code>list.append()</code>每个循环迭代。列表已经建立好了。在</p>