如何在Python中向嵌套列表的每个子列表头部添加元素?
给嵌套列表子列表开头添加元素0的Python函数式实现
给定原嵌套列表:
a = [[1,2], [3,4]]
需要得到结果:
b = [[0,1,2], [0,3,4]]
函数式编程实现方式
1. 正确使用map函数
你之前用map失败,是因为没写对每个子列表的处理逻辑。可以结合匿名函数lambda完成拼接:
b = list(map(lambda sub_list: [0] + sub_list, a))
注意map返回迭代器,必须用list()转换为列表类型。
2. 列表推导式(简洁的函数式写法)
列表推导式是Python里常用的函数式风格写法,可读性更强:
b = [[0] + sub_list for sub_list in a]
3. 结合itertools.chain的进阶写法
如果想用更纯粹的迭代器拼接方式,可以借助itertools.chain:
from itertools import chain # 结合列表推导式 b = [list(chain([0], sub_list)) for sub_list in a] # 结合map函数 b = list(map(lambda sub_list: list(chain([0], sub_list)), a))
内容的提问来源于stack exchange,提问作者maybettle
相关产品推荐
相关产品推荐

