**这两者有何不同。 ** (1)
starting_dictionary = {
"a": 9,
"b": 8,
}
final_dictionary = {
"a": 9,
"b": 8,
"c": 7,
}
final_dictionary = starting_dictionary["c"] = 7
print(starting_dictionary)
print(final_dictionary)
(2)
starting_dictionary = {
"a": 9,
"b": 8,
}
final_dictionary = {
"a": 9,
"b": 8,
"c": 7,
}
starting_dictionary["c"] = 7
final_dictionary = starting_dictionary
print(starting_dictionary)
print(final_dictionary)
我的主要疑问是关于(1)代码片段,为什么它不能像这样工作: *starting_dictionary 应该添加一个新的键值对“c”:7 *starting_dictionary 应分配给final_dictionary *现在final_dictionary应该包含所有starting_dictionary并添加键值对
在代码片段(1)中,问题在于以下行:
final_dictionary = starting_dictionary["c"] = 7
这行代码没有达到你的目的。它实际上将值7分配给starting_dictionary中的键“c”,然后将相同的值7分配给final_dictionary。它不会使用添加的键值对创建新字典。
因为:
starting_dictionary["c"] = 7:这通过添加键“c”和值 7 来修改starting_dictionary。
final_dictionary =starting_dictionary["c"] = 7: 相当于下面两步-
starting_dictionary["c"] = 7:修改starting_dictionary。 Final_dictionary = 7:将值 7 赋给 Final_dictionary。 因此,执行此行后,starting_dictionary 和 Final_dictionary 都指向值 7,而不是字典。
另一方面,代码片段(2) 正确地将键值对添加到starting_dictionary,然后将starting_dictionary的引用分配给final_dictionary。因此,在执行代码段(2)中的代码后,两个词典将具有相同的内容。