簡體   English   中英

在python中的函數內將鍵和值添加到字典中

[英]Adding key and value to a dictionary within a function in python

我目前正在嘗試使用具有三個變量的函數向空字典添加新鍵和值。

以下是我所擁有的,但它不起作用......

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但在函數中我無法將其添加到字典中。

我將不勝感激一些幫助或建議!

提前致謝

看來您的問題是您要多次添加新密鑰( for key in inventory ),並且不從原始詞典中添加其他密鑰?

我建議您打開原始字典的包裝,然后添加一個新的鍵,如下所示:

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

有關python解壓縮的更多信息: https : //www.python.org/dev/peps/pep-0448/

您可以通過以下幾種方法來更新字典:

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 所述 ,在添加新項目的同時解壓縮現有字典。

我就是這樣解決的。

def add_fruit(inventory, fruit, quantity=0):
    inventory[fruit] = quantity
    return inventory
def add_to_fruit(inventory, add_more):
    for key,value in inventory.items():
        if len(inventory) == 1:
            inventory[key] += add_more
        return inventory
            
# make these tests work...
new_inventory = {}
add_fruit(new_inventory, 'strawberries', 10)
#  test that 'strawberries' in new_inventory
print('strawberries' in new_inventory)
#  test that new_inventory['strawberries'] is 10
print(new_inventory)
add_to_fruit(new_inventory, 25)
#  test that new_inventory['strawberries'] is now 35)
print(new_inventory)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM