【发布时间】:2020-10-02 10:12:42
【问题描述】:
我有两个列表
names = ['Bruce', 'Clark', 'Peter', 'Logan', 'Wade']
heroes = ['Batman', 'Superman', 'Spiderman', 'Wolverine', 'Deadpool']
从这些列表中,我想要一个 {'name': 'hero'} 的字典,用于每个名称,使用 lambda 函数的英雄。这是我想要的输出:
{'Bruce': 'Batman', 'Clark': 'Superman', 'Peter': 'Spiderman', 'Logan': 'Wolverine', 'Wade': 'Deadpool'}
我有下面的代码,但是当我尝试使用 lambda 函数将它组合在一起时,我没有得到预期的结果。这是使用字典推导的代码
dc_dict = {name: hero for name, hero in zip(names, heroes)}
print(dc_dict)
我正在尝试使用 lambda 函数复制上述逻辑,但无法按预期工作。这是我想出的。
l_dict = dict(lambda names[name]:heroes[hero] for (name, hero) in zip(names, heroes))
print(l_dict)
TIA
【问题讨论】:
-
您可以使用:
dict(zip(names, heroes)),这样会更容易。为什么使用lambda? -
你只是不需要一个 lambda,但它应该生成一个包含两个项目的元组,因为 dict 期望这样的元组的可迭代。最后一个示例中括号中的代码是一个生成器表达式(类似于 dict 理解),在这种情况下不需要 lambda ib。
-
lambda应该做什么?你没有调用它,dict()不知道调用它。 -
是的,只是想挑战自己,看看我是否可以使用 lambda 组合起来。
-
Python 中的 Lambda 是一种无需命名(因此存储)函数即可定义函数的方法——不确定它在这里是否有用。最有效的将是使用 Python 原生 (
dict(zip()))。见stackoverflow.com/questions/209840/…
标签: python python-3.x dictionary lambda dictionary-comprehension