You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Lambda函数对字典中数值列表各元素乘2并返回新字典

解决字典列表元素翻倍的问题

嘿,我懂你的困扰!你当前的代码里有两个小问题:

  • 当你对列表用x * 2时,Python会把整个列表重复一遍(比如[2,4]*2变成[2,4,2,4]),而不是把每个元素都乘以2
  • 你最后用list(map(...))得到的是一个纯列表,丢失了原字典里的键,自然没法得到你想要的新字典

要实现你要的效果,我们需要同时遍历原字典的键和值,并且让lambda作用在列表的每个元素上,而不是整个列表本身。这里给你两种符合需求的写法:

方法1:字典推导式 + map + lambda(贴合你的需求)

a = {'Andy':[2,4,6,8],'Bryce':[1,2,3], 'Charile': [3,6], 'David':[10], 'Elaine' :[5,10]}
new_a = {key: list(map(lambda num: num * 2, values)) for key, values in a.items()}

方法2:字典推导式 + 列表推导式(更直观,可选)

如果你觉得lambda在这里有点多余,也可以用列表推导式直接处理元素,效果完全一样:

new_a = {key: [num * 2 for num in values] for key, values in a.items()}

运行上面的代码后,new_a就会是你期望的结果:

{'Andy': [4, 8, 12, 16], 'Bryce': [2, 4, 6], 'Charile': [6, 12], 'David': [20], 'Elaine': [10, 20]}

简单解释一下:

  • 我们用a.items()遍历原字典的每一组键值对
  • 对每个值列表,用map(lambda num: num*2, values)把列表里的每个元素都乘以2,再转成列表
  • 最后将原键和处理后的列表对应起来,生成新字典

内容的提问来源于stack exchange,提问作者Zhuojing Xie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:54:20