我想将字典对象作为参数传递给函数。我读了一些帖子,人们建议使用** kwargs作为参数,但是当我使用这个关键字时,它会创建一个新的字典,而不是将我的字典传递给函数。
你能帮我解决一下将整个字典对象作为变量传递的问题。这是我尝试使用它的示例代码
my_dic={test:list1[],
train:list2[]}
def prt(**kwargs):
for txt in kwargs[test]:
print(txt)
prt(my_dic)
谢谢
答案 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']