#python #python-3.x #pandas
#python #python-3.x #панды
Вопрос:
Всем добрый вечер!
Вопрос относительно списков,
Если у меня есть список с N элементами — как мне индексировать массив, отправляя каждые N строк в новый список.
class _TVRequestGET_######:
def __init__(self):
self.TVRequestURL = "############"
self.emptyArray = []
def __GET__(self):
dataStream = requests.get(######().TVRequestURL).text
regexStrSym = 'target="_blank">(w )</a><'
regexStrDT = '>(d{10,20}.00)<'
findSymbols = re.findall(regexStrSym, dataStream)
findDateTme = re.findall(regexStrDT , dataStream)
return __dataStream__
При запуске findDateTme возвращает массив из 188 элементов — каждые два значения связаны, поэтому мне нужно иметь возможность захватить findDateTme[i], findDateTme[i 1]
, а затем при создании второй группы findDateTme[i 2], findDateTme[i 3]
конечный массив будет состоять из 94 элементов в виде [a,b]
Это была моя попытка, но я столкнулся с индексом списка вне диапазона, и это потому, что, когда i = 189, тогда я буду равен 189 — 1 = 188, что выводит индекс за пределы диапазона
for i in range(len(findDateTme)):
i = i 1
self.emptyArray = [findDateTme[i], findDateTme[i-1]]
return self.emptyArray
Спасибо!
Ответ №1:
как насчет попробовать:
for i in range(0, len(findDateTme) - 1, 2):
self.emptyArray = [findDateTme[i], findDateTme[i 1]]
при использовании цикла for не изменяйте i или другую индексную переменную внутри цикла, делайте это только в цикле while.
надеюсь, это поможет.
Комментарии:
1. Потрясающе! Спасибо!
Ответ №2:
В качестве сокращения вы можете сделать
for x,y in zip(findDateTme[::2], findDateTme[1::2]):
self.emptyArray.append([x,y])
return self.emptyArray
Также вам нужно добавлять к вашему массиву, а не заменять его на каждой итерации цикла.
Комментарии:
1. Я принял это как ответ — большое спасибо