Как мне сделать несколько условий которым будет следовать for по мере прохождения итераций?

Я делаю парсер табличного расписания и мне нужно чтобы он продублировал значение перед тем как добавлять в list:

            list_time = []
            items = soup.find_all("td", {"style": "width:1px; height:15px"})

            for item in items:
                if soup.find('td', {'rowspan': '1'}):
                    list_time.append(item.text)
                    if soup.find('td', {'rowspan': '2'}):
                        list_time.append(item.text)
                        list_time.append(item.text)

Я замечаю, что при выводе цикла он на новом условии начинает идти заново и дублирует не те значения которые мне нужны.

мне нужно допустим:

10:00 - rowspan = 1 => list_time.append(item.text)

11:00 12:00 - rowspan = 2 => list_time.append(item.text)*дважды

и чтобы вывело list_time = ['10:00','11:00 12:00','11:00 12:00']

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Denis

Я нашел решение с помощью Le Chat Mistral:

            list_time = []
        items = soup.find_all("td", {"style": "width:1px; height:15px"})

        for item in items:
            if "rowspan" in item.attrs:
                # Если строка объединенная, добавить ее в list_time столько раз, сколько указано в атрибуте rowspan
                list_time.extend(repeat(item.text, int(item["rowspan"])))
            else:
                list_time.append(item.text)

        list_time = [x.replace('\t', '').replace('\n', '') for x in list_time]
        list_time = [x.replace(':00', ':00 ') for x in list_time]
        print(list_time)
→ Ссылка