Здравствуйте.
Думаю, что вопрос решается легче, чем я это придумал, но моя голова уже зациклилась и не находит другого выхода. Надеюсь, вы подскажете таковое.
Есть массив данных, представленных обычным текстом. В этом массиве представлены значения сразу нескольким сущностям. Сами эти сущности вынесены в отдельный список. Значения для каждой сущности идут блоками, разделенными пустой строкой. Пример ниже в коде. Количество значений на каждую сущность может различаться.
dataset_names = ["moscow", "new-york"]
text = """2008 11 186
2009 11 281
2011 11 776
2012 11 856
2011 11 776
2012 11 856"""
def chunks(l, n=2):
"""Разбивает список (l) на части размером n"""
for i in range(0, len(l), n):
yield l[i:i + n]
prepare_text = text.replace(' ','').replace('\n','\t').split('\t\t')
data = [list(chunks(item.split('\t'))) for item in prepare_text]
Что я делаю сейчас: удаляю пробелы (они не воспринимаются в месте назначения), разбиваю на блоки, делю блоки по парам.
А дальше, как уже написал, мозги впадают в цикл и выходят в конечном счете на одно и то же решение, которое не дает желаемого результата. Вроде не трудно сопоставить оба списка и добавить в чанки имена датасетов, но как потом вытащить оттуда данные в нужном форматировании?
В конечном счете я хочу получить примерно следующее:
moscow
value_1 = 2008
value_2 = 11186
value_1 = 2009
value_2 = 11281
etc
new-york
value_1
value_2
value_1
value_2
etc
Проще говоря, хочу вывести к каждой сущности из одного списка все соответствующие ей значения из другого, дополнительно разбивая их по парам.
Направьте, пожалуйста, в нужную сторону.