Python 在列表中穿插一个步骤

Python 在列表中穿插一个步骤,python,itertools,Python,Itertools,我有一个帖子列表“[Post1,Post2,Post3,Post4,…,PostN],我需要在其中穿插广告(基本上,在N篇帖子之后插入)。例如: step = 3 insert_advertisement(posts_list, advertisement, step) # Insert advertisement after 3 posts 输出: [Post1,Post2,Post3,广告,Post4,Post5,Post6,广告,…] 有没有很好的方法用itertools实现这一点?如果

我有一个帖子列表“[Post1,Post2,Post3,Post4,…,PostN],我需要在其中穿插广告(基本上,在N篇帖子之后插入)。例如:

step = 3
insert_advertisement(posts_list, advertisement, step) # Insert advertisement after 3 posts
输出:

[Post1,Post2,Post3,广告,Post4,Post5,Post6,广告,…]


有没有很好的方法用itertools实现这一点?如果没有-那么我将感谢任何其他解决方案。

使用生成器功能:

>>> def insert_advertisement(posts_list, advertisement, step):
...     for i, post in enumerate(posts_list):
...         if i > 0 and i % step == 0:
...             yield advertisement
...         yield post
...
>>> list(insert_advertisement([1, 2, 3, 4, 5, 6, 7], 'ad', 3))
[1, 2, 3, 'ad', 4, 5, 6, 'ad', 7]

使用生成器功能:

>>> def insert_advertisement(posts_list, advertisement, step):
...     for i, post in enumerate(posts_list):
...         if i > 0 and i % step == 0:
...             yield advertisement
...         yield post
...
>>> list(insert_advertisement([1, 2, 3, 4, 5, 6, 7], 'ad', 3))
[1, 2, 3, 'ad', 4, 5, 6, 'ad', 7]

没有内置的“穿插”功能,但是如果你看一下,你可以组合和修改一些来创建你想要的。没有内置的“穿插”功能,但是如果你看一下,你可以组合和修改一些来创建你想要的。这是最清楚的,可维护和最简单的问题解决方案。这是迄今为止最清晰、可维护和最简单的问题解决方案。