Как мне сделать несколько условий которым будет следовать 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)