擅长:python、mysql、java
<p>只需返回新的dictionary并将这个返回值赋给<code>main()</code>函数中的<code>my_dict</code>。在</p>
<pre><code>def modify_dict():
my_dict = {'b': 2}
print(my_dict)
return my_dict
def main():
my_dict = {'a': 1}
my_dict = modify_dict()
print(my_dict)
if __name__ == '__main__':
main()
</code></pre>
<p>输出应为:</p>
^{pr2}$
<p>更简单的方法是直接返回<code>{'b' : 2}</code>,甚至不生成本地<code>my_dict</code>变量,如下所示:</p>
<pre><code>def modify_dict():
return {'b' : 2}
</code></pre>
<p>这基本上与直接将新值<code>{'b' : 2}</code>赋给变量(<code>my_dict = {'b' : 2}</code>)是一样的,你甚至不需要一个函数,除非你的字典的新值依赖于它以前的值。在</p>
<h2>为什么<code>main()</code>函数中的<code>my_dict</code>变量没有被修改?在</h2>
<p>将变量传递给函数时,函数不会直接使用它。
它只使用这个变量的一个副本,一个只存在于函数中的新变量。在</p>
<p>因此,在某种程度上,您有两个<code>my_dict</code>变量:
-你的<code>modify_dict()</code>函数中的一个。
-以及你的<code>main()</code>函数中的一个。在</p>
<p>在您的<code>modify_dict()</code>函数中编辑<code>my_dict</code>时,您不会编辑<code>main()</code>函数中的<code>my_dict</code>,而只是它的一个副本。在</p>