如何使用lambda来多个字典值?

2024-05-05 09:04:29 发布

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

所以我在学习python的时候遇到了一个问题。假设我有一本字典

a = {'Andy':[2,4,6,8],'Bryce':[1,2,3], 'Charile': [3,6], 'David':[10], 'Elaine' :[5,10]}

如何使用lambda对a中的每个数字乘以2并返回一个新的dict?在

我尝试了new_a= list(map(lambda x: x * 2, a.values())),但是它返回一个类似[[2, 4, 6, 8, 2, 4, 6, 8], [1, 2, 3, 1, 2, 3], [3, 6, 3, 6], [10, 10], [5, 10, 5, 10]]的列表

我想要的新格言是:

^{pr2}$

Tags: lambdamap列表new字典数字dictlist
2条回答

保持简单。在

更改现有dict:

for key, value in a.items():
  a[key] = [2 * item for item in value]

使用更新的值创建新dict:

^{pr2}$

使用字典理解

b = {key: [2 * item for item in value] for key, value in a.items()}

不知道你需要兰姆达做什么。如果没有,这就容易多了。在

你可以试试:

a = {'Andy':[2,4,6,8],'Bryce':[1,2,3], 'Charile': [3,6], 'David':[10], 'Elaine' :[5,10]}

new_a = dict(list((key, list(map(lambda i:i*2, value))) for key, value in a.items()))

输出:

^{pr2}$

相关问题 更多 >