Как передать словарные статьи в качестве аргументов функции в python?
Мой код
1-й файл:
data = {'school':'DAV', 'standard': '7', 'name': 'abc', 'city': 'delhi'}
my_function(*data)
Второй файл:
my_function(*data):
schoolname = school
cityname = city
standard = standard
studentname = name
в приведенном выше коде, только ключи словаря данных были переданы в my_function()
, но мне нужны пары ключ-значение. Как исправить это?
Я хочу, чтобы my_function()
изменялся следующим образом:
my_function(school='DAV', standard='7', name='abc', city='delhi')
и это мое требование, дайте ответы в соответствии с этим
EDIT: класс словарного слова изменен на стандартный
Ответы
Ответ 1
Если вы хотите использовать их так, определите функцию с именами переменных как обычно (но используйте klass
для class
, вы не можете использовать зарезервированные слова):
def my_function(school, city, klass, name):
schoolname = school
cityname = city
standard = klass
studentname = name
Теперь (если вы переименуете класс в класс в словаре), вы можете использовать **
при вызове функции:
my_function(**data)
и он будет работать так, как вы хотите.
Ответ 2
* данные интерпретируют аргументы как кортежи, вместо этого вы должны передавать ** данные, которые интерпретируют аргументы в качестве словаря.
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)
Ответ 3
Вы можете просто передать его
def my_function(my_data):
my_data["schoolname"] = "something"
print my_data
или если вы действительно хотите
def my_function(**kwargs):
kwargs["schoolname"] = "something"
print kwargs