我正试图建立一个数据结构,将某些人口统计数据组织在一个字典中,其中最初的关键是地区(美洲、欧洲等)。每一个的值都是一个包含key:value country 代码:数据值。我为实现这一点而编写的函数似乎可以工作,但是在同一个脚本中第二次被调用并被分配了不同的变量名时,它不仅返回该调用的预期字典,而且覆盖第一次调用中生成的字典
在调用函数(dictionaryName = functionCall()
)之前,我尝试过为变量创建一个空字典(dictionaryName = {}
)。我还尝试了复制作为函数参数所需的字典,传入副本而不是原件,并从函数返回一个副本,而不是使用空值作为模板的字典的修改版本。在所有情况下,第二个函数调用仍然覆盖在/中为第一个函数调用创建的变量
以下是函数调用:
orderedData1960 = insertDataIntoCategoryAndCodesDictionary(data1960, dictionaryOfRegionsAndCodes)
orderedData2013 = insertDataIntoCategoryAndCodesDictionary(data2013, dictionaryOfRegionsAndCodes)
这是函数本身:
def insertDataIntoCategoryAndCodesDictionary(dataSet, categoriesAndCodesDictionary):
for category in categoriesAndCodesDictionary:
updateData(categoriesAndCodesDictionary[category], dataSet)
return categoriesAndCodesDictionary
def updateData(category, dataSet):
for key in category:
category.update({key: dataSet.get(key)})
orderedData1960
和orderedData2013
应作为同一结构中的两个不同数据集结束;目前的实际结果是它们最终完全相同
编辑:我曲解了一些东西。问题是第一个函数返回第二个参数,因为在函数的任何地方都没有重写它
相关问题 更多 >
编程相关推荐