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

时间:2014-02-24 11:17:22

标签: python function python-2.7 dictionary

我的代码

第一档:

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')

这是我的要求,根据这个给出答案

编辑:字典键更改为标准

3 个答案:

答案 0 :(得分:94)

如果你想像这样使用它们,用正常的变量名定义函数(但klass使用class,你不能使用保留字):

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

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

my_function(**data)

它可以随心所欲地工作。

答案 1 :(得分:36)

* 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)

答案 2 :(得分:8)

你可以传递它

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

或者如果你真的想要

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