擅长:python、mysql、java
<p>您的原始代码的问题是命令<code>A = B+A</code>没有达到您的预期效果。我不确定,因为您的函数返回一个给定的值(新的、更新的<code>A</code>),但是您的主程序假定列表已经更改</p>
<p>您返回的值就是您期望的值。但是,它不再是原始对象<code>A</code>。表达式<code>B+A</code>建立一个新的列表;您的<em>局部</em>变量<code>A</code>被更改为指向该变量并返回。。。你的主程序忽略了它</p>
<p>做一个简单的改变:</p>
<pre><code>A=[1,2,3]
A = addToArrayForm(A, 50000) # I corrected this to 50000; you were short a 0
</code></pre>
<p>输出:</p>
<pre><code>5
0
1
2
3
</code></pre>
<hr/>
<p>更多问题</p>
<p>请注意,这是不可持续的,您不能在此列表上进行额外的计算,因为您将<code>B</code>的元素保留为字符串,而不是整数。我想,你会想把它们转换的</p>
<hr/>
<p>另一种方式</p>
<p>如果您想更改一个in-place,请尝试将这些数字按到列表的开头,<em>in-place</em>:</p>
<pre><code>...
if carry:
B = list(str(carry))
for dig in B:
A.insert(0, int(dig))
A=[1,2,3]
addToArrayForm(A, 50000)
...
</code></pre>