如何在python中将字典项作为函数参数传递?

2024-04-29 19:42:21 发布

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

我的代码

第一个文件:

data = {'school':'DAV', 'standard': '7', 'name': 'abc', 'city': 'delhi'}
my_function(*data)

第二个文件:

my_function(*data):
    schoolname  = school
    cityname = city
    standard = standard
    studentname = name

在上面的代码中,只有“data”字典的键被传递到my_function(),但是我希望键值对被传递。如何纠正?

我希望my_function()像这样被修改

my_function(school='DAV', standard='7', name='abc', city='delhi')

这是我的要求,根据这个回答

编辑:字典键更改为标准


Tags: 文件代码namecitydata字典myfunction
3条回答

如果您想这样使用它们,请将变量名为normal的函数定义为(但是对于class使用klass,不能使用保留字):

def my_function(school, city, klass, name):
    schoolname  = school
    cityname = city
    standard = klass
    studentname = name

现在(只要在字典中将类重命名为klass),就可以在调用函数时使用**

my_function(**data)

它会按你的要求工作。

你可以通过它

def my_function(my_data):
    my_data["schoolname"] = "something"
    print my_data

或者如果你真的想

def my_function(**kwargs):
    kwargs["schoolname"] = "something"
    print kwargs

*data将参数解释为元组,而您必须传递**data,后者将参数解释为字典。

data = {'school':'DAV', 'class': '7', 'name': 'abc', 'city': 'pune'}


def my_function(**data):
    schoolname  = data['school']
    cityname = data['city']
    standard = data['class']
    studentname = data['name']

您可以这样调用函数:

my_function(**data)

相关问题 更多 >