fafnir_dragon
@fafnir_dragon
Веб разработчик и фрилансер

Как сделать итерировать объект другой модели после 2ух итерации первой итд?

Как сделать так чтобы скажем через каждые две поста (Post - отдельная модель) появлялся только один баннер (Banner - отдельная модель) а потом опять две поста и баннер и так далее.
Вот примерная схема вывода:
post1, post2
banner1
post3, post4
banner4
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 1
Tomio
@Tomio
backend developer (python, php)
Например, так:
banners = ['banner1', 'banner2', 'banner3']
posts = ['post1', 'post2', 'post3', 'post4', 'post5', 'post6', 'post7', 'post8']
banner_step = 2
for index, post in enumerate(posts):
    print(post)
    if (index+1) % banner_step == 0 and banners:
        print(banners.pop(0))


Вывод будет таким:
post1
post2
banner1
post3
post4
banner2
post5
post6
banner3
post7
post8


Только нужно учесть, что после каждой команды banners.pop(0) список banners будет уменьшаться. Если нужно сохранить исходный список, то необходимо будет сделать копию данного списка и уже в нём делать .pop(0)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы