如何使用lambda函数组合两个列表

2024-09-28 18:16:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两张单子

names = ['Bruce', 'Clark', 'Peter', 'Logan', 'Wade']
heroes = ['Batman', 'Superman', 'Spiderman', 'Wolverine', 'Deadpool']

从这些列表中,我希望每个名称都有一个{'name':'hero}的dict,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)

短暂性脑缺血发作


Tags: lambda函数namenamesdictpeterclarkhero
1条回答
网友
1楼 · 发布于 2024-09-28 18:16:58

just trying to challenge myself to see if I can put it together using a lambda

既然我们已经确定了lambda是不必要的,如果不是完全不需要的话,那么让我们这样做:

names = ['Bruce', 'Clark', 'Peter', 'Logan', 'Wade']
heroes = ['Batman', 'Superman', 'Spiderman', 'Wolverine', 'Deadpool']

l_dict = dict((lambda n, h: {name: hero for name, hero in zip(n, h)})(names, heroes))
print(l_dict)

问题是不能将lambda表达式传递给dict(),只能传递调用lambda表达式的结果

相关问题 更多 >