根据另一个列表中的项目插入到列表中



我有一个列表列表

my_list=[[1,2,3],[4,5,6],[7,8,9]]

我想在基于此列表的每个列表中的第一个项目之后插入一个新项目,并重复:

num_range=[1,2]

我尝试使用enumerate(),但当然遇到了IndexError

for index,i in enumerate(my_list):
i.insert(1,num_range[index])

预期:

my_list=[[1,1,2,3],[4,2,5,6],[7,1,8,9]]

您可以使用itertools.cyclenum_range上生成一个生成器,该生成器根据需要返回到开头。然后将其压缩到原始列表中以执行插入操作。

from itertools import cycle
for sub, i in zip(my_list, cycle(num_range)):
sub.insert(1, i)

输出

>>> my_list
[[1, 1, 2, 3], [4, 2, 5, 6], [7, 1, 8, 9]]

您可以使用itertools.cyclezip:

from itertools import cycle
for a_list, num_to_insert in zip(my_list, cycle(num_range)):
a_list.insert(1, num_to_insert)

最新更新