我有一个帖子列表`[Post1,Post2,Post3,Post4,...,PostN],我需要在广告中插入它(基本上,在N个帖子之后插入)。例如:
step = 3
insert_advertisement(posts_list, advertisement, step) # Insert advertisement after 3 posts
输出:
[Post1, Post2, Post3, advertisement, Post4, Post5, Post6, advertisement, ...]
使用itertools实现这个有很好的方法吗?如果没有 - 那么我会感激任何其他解决方案。
答案 0 :(得分:4)
使用生成器功能:
>>> 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]