回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>考虑以下代码</p>
<pre><code>#! /usr/bin/env python
my_dict = {1:['Bernd','das','Brot'], 2:['Chili','das','Schaf'], 3:['Briegel','der','Busch']}
print my_dict
chili = my_dict[2]
print chili
del chili[2]
print chili
print my_dict
</code></pre>
<p>它使用Python 2.7.5生成以下输出:</p>
<pre><code>{1: ['Bernd', 'das', 'Brot'], 2: ['Chili', 'das', 'Schaf'], 3: ['Briegel', 'der', 'Busch']}
['Chili', 'das']
{1: ['Bernd', 'das', 'Brot'], 2: ['Chili', 'das'], 3: ['Briegel', 'der', 'Busch']}
</code></pre>
<p>如您所见,dict中的列表也被操纵,因此它们似乎指向内存中的同一对象/事物。你知道吗</p>
<p>也许我在这里理解了一个基本的Python原则错误(请随意指出规范),但是这是预期的行为吗?如果是的话,有没有一种方法可以在不操纵原始dict的情况下,从dict的列表中按索引删除和输入内容?我经常发现已经有一种非常简单的Python方法来完成我试图用复杂的代码构造来完成的任务。你知道吗</p>
<p>我这里有一个很大的dict,我经常从中取出列表,我不想每次以任何方式处理列表时都重建dict。你知道吗</p>
<p>非常感谢您的时间和帮助</p>
<p>托比亚斯</p>