我在python中有以下两个字典,我需要对它们进行转换以获得第三个字典
matrikelnummer_zu_note = { 35135135: 5, 60103513: 3, 10981179: 2, 18637724 : 4 }
note_zahl_zu_string = { 1: "summa cum laude", 2: "magna cum laude", 3: "cum laude", 4: "rite", 5: "non probatum" }
{60103513: 'cum laude', 10981179: 'magna cum laude', 18637724: 'rite', 35135135: 'non probatum'}
所以我需要得到第一个字典的值,并用第二个字典中与相应键链接的值替换它们。在
我可以通过这样一个简单的循环来解决这个问题:
^{pr2}$但是我们的教授希望我们使用map()
函数和lambda
-表达式来解决这个问题。在
现在,我开始尝试以这种方式围绕lambda和map函数“构建”我的解决方案:
def transform_dict(d1, d2):
liste = list(d1.values())
liste.sort()
list(map(lambda elem_from_list,dictionary: dictionary[elem_from_list],liste,d2 ))
但是我在最后一行中得到一个错误,它说TypeError: 'int' object is not subscriptable
如果有人帮我解决这个问题,我会非常感激的。在
事先非常感谢
您可以映射字典的项,这些项是键值对,然后对于每个值,使用它作为键从另一个字典中获取值:
当你在字典上迭代(即映射)时,它映射到键上。这解释了您的错误,因为您的
lambda
有两个参数,第二个参数从note_zahl_zu_string
接收密钥。在所以,像这样的东西应该足够了:
相关问题 更多 >
编程相关推荐