如何将字典对象作为python中函数的参数传递

时间:2018-06-07 15:48:53

标签: python dictionary parameters

我想将字典对象作为参数传递给函数。我读了一些帖子,人们建议使用** kwargs作为参数,但是当我使用这个关键字时,它会创建一个新的字典,而不是将我的字典传递给函数。

你能帮我解决一下将整个字典对象作为变量传递的问题。这是我尝试使用它的示例代码

my_dic={test:list1[],
        train:list2[]}

def prt(**kwargs):
    for txt in kwargs[test]:
        print(txt)

prt(my_dic)

谢谢

3 个答案:

答案 0 :(得分:0)

您可以将字典作为参数传递,与其他类型的变量相同:

def prt(test):
    #If you call prt with a dictionary as parameter, test will be a dictionary

与其他类型的变量不同,如果修改函数内的字典,它将在外部保持修改。

答案 1 :(得分:0)

dict是一种内置类型;没有额外的"魔法"将dict作为函数参数传递。试试这个:

def prt(param):
    for txt in param["test"]:
        print(txt)

my_dic={"test" :[2, 3, 5, 7, 11, 13, 17, 19],
        "train":[1, 2, 3, 5, 8, 13, 21, 34]}

prt(my_dic)

输出:

2
3
5
7
11
13
17
19

答案 2 :(得分:0)

函数def prt(**kwargs)允许您传递任意数量的关键字参数(即格式为“name = value”的参数)。以下是定义和调用它的方法:

def prt1(**kwargs):
    print(kwargs['test'])

prt1(test = ['A', 'B', 'C' ,'D'], train = [1, 2, 3, 4])
# ['A', 'B', 'C', 'D']

显然可以使用函数def prt(aDict):它允许您传递单个对象(此处为字典)作为参数。以下是定义和调用它的方法:

my_dict = {'test' : ['A', 'B', 'C' ,'D'],
           'train': [1, 2, 3, 4]

def prt2(aDict):
    print(aDict['test'])

prt2(my_dict)
# ['A', 'B', 'C', 'D']