Добавление ключа и значения в словарь в функции в Python - PullRequest
0 голосов
/ 23 сентября 2018

В настоящее время я пытаюсь добавить новый ключ и значение в пустой словарь, используя функцию с тремя переменными.

Вот что у меня есть, но оно не работает ...

def add_fruit(inventory, fruit, quantity=0):
    new_inventory = {}
    for key in inventory: 
        new_inventory[fruit] = quantity
    return new_inventory

Что мне нужно добавить или изменить, чтобы эта функция работала правильно?Например, если я хочу добавить 10 клубник, я бы сказал new_inventory["strawberries"] = 10, но в функции я не могу добавить это в словарь.

Буду признателен за помощь или предложения!

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Существует несколько способов обновления словаря с помощью функции:

dict.__setitem__

Просто установите элемент с помощью setitem или его синтаксического сахара []:

def add_fruit(inventory, fruit, quantity=0):
    inventory[fruit] = quantity
    return inventory

dict.update

Создайте словарь и обновите существующий словарь следующим образом:

def add_fruit(inventory, fruit, quantity=0):
    inventory[fruit] = quantity
    return inventory

Создайте новый словарь

Распакуйте существующий словарь, покадобавление нового элемента , как описано автором @ ArtyonNeustroev.

0 голосов
/ 23 сентября 2018

Похоже, ваша проблема в том, что вы добавляете новый ключ несколько раз (for key in inventory) и не добавляете другие ключи из исходного словаря?

Я бы посоветовал вам распаковать исходный словарьи добавьте новый ключ, например:

def add_fruit(inventory, fruit, quantity=0):
    return {**inventory, fruit: quantity}

Подробнее о распаковке python: https://www.python.org/dev/peps/pep-0448/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...