当前位置: 首页 > 知识库问答 >
问题:

理解Python中的理解

百里阳平
2023-03-14

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

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

返回一个空集。

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

谢谢

共有1个答案

禄奇希
2023-03-14
>>> {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现在是一个整数,与列表相比没有意义。

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

 类似资料:
  •   上下文管理器用于资源管理。它们允许你在需要时分配和释放资源。上下文管理器最常用和最受认可的例子是 with 语句。 它主要用于打开和关闭文件。with 允许在单行出现问题时打开和关闭文件。 它的主要优点是它可以确保文件正确关闭。 with open ('./data.txt','w') as f:     f.write("Hello")

  • 本文向大家介绍理解Python中的With语句,包括了理解Python中的With语句的使用技巧和注意事项,需要的朋友参考一下 With语句是什么? 有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。 如果不用with语句,代码如下: 这里有两个问

  • 问题内容: 我在和中找到了以下有关dict理解的堆栈溢出文章:在Python中用列表理解创建字典,说明我可以像这样应用字典理解: 我在Python 3中尝试过。但是,它引发了一个异常。 两种版本都提出了这样的说法。 在Python3中进行字典理解的最简单/最直接的方法是什么? 问题答案: 遍历字典只会产生 键 。使用循环遍历键和值: 您看到的异常 不是 dict理解问题,也不限于Python 3。

  • 本文向大家介绍轻松理解Python 中的 descriptor,包括了轻松理解Python 中的 descriptor的使用技巧和注意事项,需要的朋友参考一下 定义 通常,一个 descriptor 是具有“绑定行为”的对象属性。所绑定行为可通过 descriptor 协议被自定义的 __get__() , __set__() 和 __delete__() 方法重写。如果一个对象的上述三个方法任意

  • 问题内容: 因此,我在做家庭作业时遇到了两个问题,我被困在第二个问题上。 使用Python Set Comprehension(Python等效于Set Builder表示法)来生成所有小于100的质数的集合。回想一下,质数是一个大于1的整数,并且不能被除以外的任何整数整除本身和1.将素数集存储在变量中(其他部分将需要它)。输出您的一组素数(例如,带有打印功能)。 使用Python Set Com

  • 问题内容: 加入列表: join 必须采取迭代。 显然,join的论点是,这是一个列表理解。 看这个: 现在,join的参数为,但结果相同。 为什么?是否str还会产生列表或可迭代项? 问题答案: 这称为生成器表达式,并在PEP 289中进行了说明。 生成器表达式和列表理解之间的主要区别在于前者不在内存中创建列表。 请注意,还有第三种编写表达式的方法: