Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的理解_Python_List Comprehension - Fatal编程技术网

Python中的理解

Python中的理解,python,list-comprehension,Python,List Comprehension,我正在学习一门在线课程,其中一个问题要求我们将基于列表中索引的姓名与基于关键字的理解中的工资与以下列表和字典进行匹配: 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))

我正在学习一门在线课程,其中一个问题要求我们将基于列表中索引的姓名与基于关键字的理解中的工资与以下列表和字典进行匹配:

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()}
返回一个空集

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

谢谢

>>> {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
现在是一个整数,与列表相比没有意义

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

您不应该迭代
d.values()
-只需使用
enumerate
迭代名称,并使用该索引获取
d
中的薪资

编辑后:

您的比较
x==d.keys()
仍然不起作用
x
现在是一个整数,与列表相比没有意义


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

d.keys()
提供了
d
中所有键的列表。当您在名称中对x执行
操作时,x是for循环每次迭代中
名称
中的一个特定键。因此,
x
(始终是一个字符串)从来不是字典中的键列表(不存在字符串
s
,因此对于某些列表
L
)。因为如果条件总是失败,那么最终会得到一个空集合,请参见编辑到x,它现在是一个整数。
int
永远不会等于
列表
,无论它们的值是什么。
d.keys()
为您提供了
d
中所有键的列表。当您在名称
中对x执行
操作时,x是for循环每次迭代中
名称
中的一个特定键。因此,
x
(始终是一个字符串)从来不是字典中的键列表(不存在字符串
s
,因此对于某些列表
L
)。因为如果条件总是失败,那么最终会得到一个空集合,请参见编辑到x,它现在是一个整数。尽管如此,
int
永远不会等于
列表
,无论它们的值是什么