我正在做一个在线课程,其中一个问题要求我们将列表中基于索引的名称与基于关键字的理解中的薪水进行匹配,并使用以下列表和字典:
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()}它返回一个空集。
有人能给我一两个提示(不是代码答案)如何修复这个问题吗?
谢谢!
发布于 2013-07-16 04:17:48
>>> {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现在是一个整数,与列表相比没有任何意义。
我认为你只是把它复杂化了。试着记住你的变量是什么类型,以及比较是否有意义。
https://stackoverflow.com/questions/17663078
复制相似问题