当前位置: 首页 > 面试题库 >

用列表理解创建字典

齐胜涝
2023-03-14
问题内容

我喜欢Python列表理解语法。

它也可以用来创建字典吗?例如,通过遍历键和值对:

mydict = {(k,v) for (k,v) in blah blah blah}  # doesn't work

问题答案:

使用字典理解:

{key: value for (key, value) in iterable}

注意:这适用于Python 3.x(及2.7及更高版本)。以前在Python 2.6和更早版本中,dict内置函数可以接收可迭代的键/值对,因此您可以将其传递给列表理解或生成器表达式。例如:

dict((key, func(key)) for key in keys)

在简单的情况下,您根本不需要理解…

但是,如果您已经具有可迭代的键和/或值,只需dict直接调用内置函数即可:

1) consumed from any iterable yielding pairs of keys/vals
dict(pairs)

2) "zip'ped" from two separate iterables of keys/vals
dict(zip(list_of_keys, list_of_values))


 类似资料:
  • 问题内容: 我喜欢Python列表理解语法。 可以用来创建字典吗?例如,通过遍历键和值对: 问题答案: 从Python 2.7和3开始,你应该只使用语法: 在Python 2.6和更早版本中,内置函数可以接收键/值对的迭代,因此你可以将其传递给列表推导或生成器表达式。例如: 但是,如果你已经具有可迭代的键key/value,则根本不需要使用任何理解-最简单的方法是直接调用内置函数:

  • 问题内容: 可以将这段代码转换为列表理解吗? 我知道如何转换它的一部分: 但是我不知道如何添加中断,并且文档没有太大帮助。 任何帮助,将不胜感激。 问题答案: 分解一下: 将产生一个清单。您想要的是列表中的第一项。一种方法是使用下一个功能: Next返回迭代器的下一项。在像列表这样的可迭代的情况下,它最终采用了第一项。 但是没有理由真正构建列表,因此我们可以改用生成器表达式: 另外,请注意,如果生

  • 问题内容: 我想创建一个字典,其值为列表。例如: 如果我做: 我收到一个KeyError,因为d […]不是列表。在这种情况下,我可以在分配a后添加以下代码以初始化字典。 有一个更好的方法吗?可以说,直到进入第二个循环,我才知道需要的键。例如: 然后可以替代 与 处理此问题的最佳方法是什么?理想情况下,追加将“有效”。有什么方法可以表达我想要空列表的字典,即使我第一次创建列表时也不知道每个键? 问

  • 问题内容: 我有一个很大的文件(大约有200k输入)。输入形式为: 我正在读取此文件并将其存储在列表中,如下所示: 每当看到新行时,都会拆分文件。因此,文本如下所示: 我现在必须将这些值存储在字典中,其中键值是每个列表的第一个元素。即键将是A,B,C,D。我发现很难输入值作为列表的其余元素。即字典应该看起来像: 我已经完成以下工作: 请帮助我如何将值添加到字典中。如果列表中没有任何元素(除了将作为

  • 问题内容: 我需要将列表转换成字典,如下所示。奇数元素具有键,偶数元素具有值。 -> 获得相同结果的更好方法? 添加 似乎在工作 问题答案: dict(x[i:i+2] for i in range(0, len(x), 2))

  • 问题内容: 我想从Python中的常量列表创建lambda对象列表;例如: 但是,当我运行它们时,这将创建一个lambda对象列表: 我希望它会打印 而是打印: 似乎所有lambda都被赋予了错误的参数。我做错了什么,有办法解决吗?我认为我使用的是Python 2.4。 编辑:更多尝试的事情,例如这样: 打印从1到25的期望平方,然后使用之前的print语句: 仍然给了我全部。现有的lambda对