【发布时间】:2016-09-26 15:28:43
【问题描述】:
希望有人可以帮助我,因为我的研究都没有帮助我。我有一本简单的字典:
mydict = {
1: {1: 'Foo'},
2: {1: 'Bar'}
}
我正在复制每个键/值对以分配新的键值:
nextKey = len(mydict) + 1
for currKey in range(len(mydict)):
mydict[nextKey] = mydict[currKey + 1]
nextKey += 1
这给了我一个mydict:
{
1: {1: 'Foo'},
2: {1: 'Bar'},
3: {1: 'Foo'},
4: {1: 'Bar'},
}
我现在想为所有现有的嵌套字典添加一个新的键值对。每个的键应该是 '2' 并且每个嵌套字典的值应该增加:
newValue = 1
for key in mydict:
mydict[key][2] = newValue
newValue += 1
我期待:
{
1: {1: 'Foo', 2: 1},
2: {1: 'Bar', 2: 2},
3: {1: 'Foo', 2: 3},
4: {1: 'Bar', 2: 4},
}
但这给了我一个mydict:
{
1: {1: 'Foo', 2: 3},
2: {1: 'Bar', 2: 4},
3: {1: 'Foo', 2: 3},
4: {1: 'Bar', 2: 4},
}
我使用了我正在使用的 IDE 的可视化工具,在我运行循环以复制键/值对之后,新键似乎只是引用了复制的值而不是实际包含它,也许这有一些东西和它有什么关系?
谁能帮忙/解释一下?
【问题讨论】:
-
“新键只是引用重复的值,而不是实际包含它”。是的,这就是答案。\
标签: python for-loop dictionary nested