Python在函数中附加字典

Python在函数中附加字典,python,function,dictionary,Python,Function,Dictionary,我试图理解函数是如何工作的,我创建了一个函数,它将2个字典作为参数,并返回1个字典。当我运行该函数时,它会按预期工作并返回完整的字典。该函数的目的是迭代for循环并在y中删除数据 但是如果我运行y,我会得到一个空字典,当我想要存储x的所有值时 y Out: {} (移动评论以回答问题) 在函数中,您正在设置一个局部变量y,它与函数外部定义的全局y不同 要访问本地值,有两个选项: ► 使用函数的返回值设置全局变量: y = testing_dict(x,y) # get return val

我试图理解函数是如何工作的,我创建了一个函数,它将2个字典作为参数,并返回1个字典。当我运行该函数时,它会按预期工作并返回完整的字典。该函数的目的是迭代for循环并在y中删除数据

但是如果我运行y,我会得到一个空字典,当我想要存储x的所有值时

y
Out: {} 
(移动评论以回答问题)

在函数中,您正在设置一个局部变量
y
,它与函数外部定义的全局
y
不同

要访问本地值,有两个选项:

► 使用函数的返回值设置全局变量:

y = testing_dict(x,y)  # get return value
► 从函数中更新全局变量:

def testing_dict(x, y):
    global y  # access global variable
    y = {**x, **y}  # set global variable
    return y   

返回
y
。不更新全局变量。试试
y=testing\u dict(x,y)
像个魔咒一样工作
def testing_dict(x, y):
    global y  # access global variable
    y = {**x, **y}  # set global variable
    return y