【发布时间】:2017-01-19 19:38:01
【问题描述】:
我在 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'}
所以我需要获取第一个字典的值并将它们替换为与第二个字典中相应键链接的值。
我可以通过这样一个简单的循环来解决这个问题:
def transform_dict(d1, d2):
for x in d1.keys():
d1[x]=d2[d1[x]]
return d1
但是我们的教授希望我们使用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 时出现错误
我会真的感谢任何帮助解决这个问题。
提前非常感谢
【问题讨论】:
标签: python python-3.x dictionary lambda