![](/img/trans.png)
[英]Python - adding new key:value pairs to dictionary within a dictionary
[英]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
我就是這樣解決的。
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.