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

如何修正map+Lambda生成字典的代码以获取目标字典列表?

解决Python中map转换字典的格式问题

嘿,我明白你现在遇到的问题了——你想把那组元组数据转换成每个元素都是单字典的列表,但当前的map写法生成了嵌套的小字典列表,完全不是你想要的样子。

咱们来修正一下:问题出在你用列表推导式生成了一堆单个键的小字典,而我们需要的是把每个子列表里的所有键值对合并成一个字典。

修正后的代码

original_data = [('h', ['ab', 'aus']), ('c', ['ab', 'escu']), ('n', ['lia', 'lmos'])]
result = list(map(lambda row: {b: 1 for b in row[1]}, original_data))
print(result)

为啥这样能行?

原来的写法[{b: 1} for b in row[1]]会为每个元素生成一个独立的小字典,再把它们塞进列表里。而改成{b: 1 for b in row[1]}后,这就变成了字典推导式,直接把所有b:1的键值对合并成一个完整的字典,正好符合你的需求。

如果你觉得lambda+map的写法有点绕,用普通的列表推导式可读性会更强,效果是完全一样的:

result = [{b: 1 for b in item[1]} for item in original_data]

运行上面的代码,你就能得到期望的结果:[{'ab': 1, 'aus': 1}, {'ab': 1, 'escu': 1}, {'lia': 1, 'lmos': 1}]

内容的提问来源于stack exchange,提问作者sara jones

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:04:45