在python函数中保存字典值

时间:2016-01-16 04:29:20

标签: python python-2.7 dictionary

我正在学习python,并且有一个关于如何通过python函数保存字典值的问题。

import copy
def func():
    b = {'1':'d'}
    a = copy.deepcopy(b)
global a
a = {}
func()
print a

打印输出仍为{},如何使其成为{'1':'d'}

3 个答案:

答案 0 :(得分:4)

你需要说你正在访问函数内的global变量a,就像这样

def func():
    global a
    b = {'1': 'd'}
    a = copy.deepcopy(b)

但是,不喜欢做那样的事情。相反,返回副本,然后将其存储在调用位置,如此

import copy
a = {}


def func():
    b = {'1': 'd'}
    return copy.deepcopy(b)

a = func()
print a

答案 1 :(得分:1)

我将global a移到了函数定义中。

#! /usr/bin/python

import copy
def func():
    global a
    b = {'1':'d'}
    a = copy.deepcopy(b)
a = {}
func()
print a

答案 2 :(得分:1)

您正在定义' a'在两个不同的范围内,一个在"全球"范围,功能范围之一。您需要返回copy.deepcopy(b)并将其设置为外部定义的' a'。

的值。
import copy

def func():
    b = {'1':'d'}
    return copy.deepcopy(b)
global a

a = func()
print a