相关疑难解决方法(0)

如何复制字典并仅编辑副本

有人可以向我解释一下吗?这对我没有任何意义.

我将字典复制到另一个字典中并编辑第二个字典,然后更改两个字典 为什么会这样?

>>> dict1 = {"key1": "value1", "key2": "value2"}
>>> dict2 = dict1
>>> dict2
{'key2': 'value2', 'key1': 'value1'}
>>> dict2["key2"] = "WHY?!"
>>> dict1
{'key2': 'WHY?!', 'key1': 'value1'}
Run Code Online (Sandbox Code Playgroud)

python dictionary reference python-3.x

737
推荐指数
15
解决办法
52万
查看次数

将键值对添加到嵌套字典中

我在向嵌套字典添加键值对时遇到一些问题。新的对似乎被添加到外部字典中的所有条目,而不仅仅是我想要的嵌套字典。

这是一个例子:

mykeys = ['key1', 'key2', 'key3']
mydictionary = dict.fromkeys(mykeys, {})
mydictionary['key1']['subkey1'] = 'value1'
mydictionary
Run Code Online (Sandbox Code Playgroud)

我期望看到以下内容,其中“subkey1”仅添加到“key1”字典中:

{'key1': {'subkey1': 'value1'},
 'key2': {},
 'key3': {}}
Run Code Online (Sandbox Code Playgroud)

相反,它将 subkey1/value1 对添加到外部字典的每个元素中:

{'key1': {'subkey1': 'value1'},
 'key2': {'subkey1': 'value1'},
 'key3': {'subkey1': 'value1'}}
Run Code Online (Sandbox Code Playgroud)

为什么会出现这种情况?我该如何重写代码来修复这个错误?

python dictionary python-3.x

6
推荐指数
1
解决办法
7571
查看次数

Python中的删除方法

我有以下代码:

tree = {'nodes':[1,2,3],'root':[1]}
nodes = tree['nodes']
nodes.remove(2)
print(tree['nodes'])
print(nodes)
Run Code Online (Sandbox Code Playgroud)

输出如下:

[1, 3]
[1, 3]
Run Code Online (Sandbox Code Playgroud)

我的问题可能很愚蠢,但我不明白为什么remove方法导致该tree变量也发生了变化?

我认为当我像nodes上面的例子一样创建一个新变量时,任何应用于这个变量的方法只会影响这个变量。

从这个例子中,我可以得出结论,它也对一个tree变量产生了影响。

它以某种方式与全局和局部变量有关吗?

python dictionary copy list remove-method

2
推荐指数
1
解决办法
49
查看次数

标签 统计

dictionary ×3

python ×3

python-3.x ×2

copy ×1

list ×1

reference ×1

remove-method ×1