我有一个列表列表
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.cycle
在num_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.cycle
和zip
:
from itertools import cycle
for a_list, num_to_insert in zip(my_list, cycle(num_range)):
a_list.insert(1, num_to_insert)