我想编写一个函数,它将字典作为输入并返回一个新字典.在新词典中我想使用与旧词典中相同的键,但我有新的值.
这是我的旧词典:
animals = {'tiger': ['claws', 'sharp teeth', 'four legs', 'stripes'],
'elephant': ['trunk', 'four legs', 'big ears', 'gray skin'],
'human': ['two legs', 'funny looking ears', 'a sense of humor']
}
然后我正在创建一个接收旧字典的函数,我希望它保留键但更改值(新值应该通过一个名为bandit的函数.它看起来像这样.
def myfunction(animals):
new_dictionary = {}
for key in animals.keys():
new_dictionary = {key: []}
for value in animals[key]:
bandit_animals = bandit_language(value)
new_dictionary = {key: bandit_animals}
return new_dictionary
print(myfunction(animals))
该函数只打印最后一个键和最后一个值,我希望它打印整个字典.
谁能解释一下?
最佳答案 您在每次循环中都会再次初始化一个空白字典.
这应该工作:
def myfunction(animals):
new_dictionary = {}
for key in animals.keys():
new_dictionary[key] = []
for value in animals[key]:
bandit_animals = bandit_language(value)
new_dictionary[key].append(bandit_animals)
return new_dictionary
print(myfunction(animals))