在列表中穿插一个步骤

2024-04-27 14:38:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个帖子列表`[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来实现这一点?如果没有-那么我会感激任何其他的解决方案。你知道吗


Tags: 列表post2post4steppost1帖子list广告
1条回答
网友
1楼 · 发布于 2024-04-27 14:38:41

使用生成器函数:

>>> 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]

相关问题 更多 >