Python字典:用于填充字典的函数,覆盖同一函数的早期调用

2024-09-30 22:18:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图建立一个数据结构,将某些人口统计数据组织在一个字典中,其中最初的关键是地区(美洲、欧洲等)。每一个的值都是一个包含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)})

orderedData1960orderedData2013应作为同一结构中的两个不同数据集结束;目前的实际结果是它们最终完全相同


Tags: 数据key函数字典def副本dataset函数调用
1条回答
网友
1楼 · 发布于 2024-09-30 22:18:44

编辑:我曲解了一些东西。问题是第一个函数返回第二个参数,因为在函数的任何地方都没有重写它

相关问题 更多 >