python – 创建一个返回新字典的函数

我想编写一个函数,它将字典作为输入并返回一个新字典.在新词典中我想使用与旧词典中相同的键,但我有新的值.

这是我的旧词典:

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))
点赞