0

我正在上一个在线课程,其中一个问题要求我们将基于列表中索引的名称与基于具有以下列表和字典的键的理解中的薪水进行匹配:

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()}

它返回一个空集。

有人可以给我一两个提示(不是代码答案)如何解决这个问题吗?

谢谢!

4

1 回答 1

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现在是一个与列表比较没有意义的整数。

我认为你只是把它复杂化了。试着记住你的变量是什么类型以及比较是否有意义。

于 2013-07-15T20:17:47.753 回答