首页 > 解决方案 > 在 map() 中使用 List 方法在 Python 中不可行吗?

问题描述

我有一个项目要在我不允许使用或 while 循环的地方工作。我只能使用map()、filter()、reduce等高阶函数。我对我必须做什么有一个明确的想法,但是当我尝试在地图中使用 .insert() 方法时,它返回一个 NoneType。如果我使用 list(),它会返回一个 None 类型的列表。

map(lambda x, y: x.insert(y, info), double_list, size)

这就是我想要做的,作为双重列表,一个相等列表的列表,并且大小在一定范围内。类似于 [[1,2,3],[1,2,3],[1,2,3]]。这个想法是将某个对象(一个字符串)插入到所有子列表中,但在不同的位置。例如,如果我想插入将数字 5 放入所有数字中,则输出应类似于 [[5,1,2,3], [1,5,2,3], [1,2,5 ,3]]。使用 for 循环这将是小菜一碟,但由于限制,我真的很难过。

标签: pythonlistmappinghigher-order-functions

解决方案


我想你正在寻找类似的东西

info = 5
double_list = [[1,2,3], [1,2,3], [1,2,3]]

print([sl[:i] + [info] + sl[i:] for i, sl in enumerate(double_list)])

或者,如果您出于某种原因无法在理解中使用 for。

map(lambda v: v[1][:v[0]] + [info] + v[1][v[0]:], enumerate(double_list))

推荐阅读