我正在开设一个在线课程,其中一个问题要求我们根据列表中的索引匹配名称,并根据以下列表和字典中的键理解薪水:
d = {0:1000.0, 1:1200.50, 2:990}
names = ['Larry', 'Curly', 'Moe']
listdict2dict = { ... }
期望的输出:
{'Larry':1000.0,'Curly':1200.50,'Moe':990}
我写了以下内容:
{names[x]:y for x in range(len(names)) for y in d.values() if x == d.keys()}
返回一个空集。
有人可以给我一两个提示(不是代码答案)如何解决这个问题?
谢谢!
答案 0 :(得分:4)
>>> {name: d[i] for i, name in enumerate(names)}
{'Larry': 1000.0, 'Moe': 990, 'Curly': 1200.5}
你不应该对d.values()
进行迭代 - 只需用enumerate
迭代名称,并使用该索引获得d
中的薪水。
修改后:
您的比较x == d.keys()
仍然不起作用。 x
现在是一个整数,与列表进行比较没有意义。
我认为你只是过于复杂了。尝试记住变量的类型以及比较是否有意义。