Уведомления

Группа в Telegram: @pythonsu

#1 Май 18, 2016 11:30:11

kirillka
Зарегистрирован: 2015-05-22
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите перебрать массив

В общем-то собираю данные с html страниц. Есть массив, состоящий из массивов который состоит из объектов.

К примеру:

[
	[{'id': u'1627207:28341', 'title': u'\u9ed1\u8272'}, {'id': u'1627207:28326', 'title': u'\u7ea2\u8272'}, {'id': u'1627207:28327', 'title': u'\u9152\u7ea2\u8272'}, {'id': u'1627207:877924746', 'title': u'\u9ed1\u8272B\u6b3e\u5927\u53f7'}, {'id': u'1627207:877924751', 'title': u'\u9ed1\u8272A\u6b3e\u5c0f\u53f7'}, {'id': u'1627207:1033986606', 'title': u'\u7ea2\u8272A\u6b3e\u5c0f\u53f7'}]
]

Или же несколько элементов:
[
	[{'id': u'20509:28341', 'title': u'\u9ed1\u8272'}, {'id': u'20509:28323', 'title': u'\u7c89\u8272'}],
	[{'id': u'1627207:28315', 'title': u'M'}, {'id': u'1627207:28316', 'title': u'L'}]
]

В общем-то проблема в том, что я не знаю сколько массивов будет внутри: 1,2,3,5,10, но мне нужно сделать список типа , , ,

  • {'id': ‘20509:28341;1627207:28316’, ‘titles’: }
  • {'id': ‘20509:28341;1627207:28315’, ‘titles’: }
  • {'id': ‘20509:28323;1627207:28316’, ‘titles’: }

Отредактировано kirillka (Май 18, 2016 11:34:56)

Офлайн

#2 Май 18, 2016 12:49:51

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Помогите перебрать массив

Тут уже много раз обсуждалось.
Например так

def flattening(data):
    for di in data:
        # вместо dict может быть свой тип, или набор типов
        if isinstance(di, dict):
            yield di
        else:
            for fi in flattening(di):
                yield fi
 
a = [
	[{'id': u'20509:28341', 'title': u'\u9ed1\u8272'}, {'id': u'20509:28323', 'title': u'\u7c89\u8272'}],
	[{'id': u'1627207:28315', 'title': u'M'}, {'id': u'1627207:28316', 'title': u'L'}]
]
 
for i in flattening(a):
    print i

Upd: если нужна какая-то агрегация, её исходя из этого легко сделать.

Отредактировано Shaman (Май 18, 2016 12:54:26)

Офлайн

#3 Май 18, 2016 14:28:57

kirillka
Зарегистрирован: 2015-05-22
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите перебрать массив

Shaman
Тут уже много раз обсуждалось.Например так
Я к сожалению новичёк в питоне… Но до конца не понял… При принте мне выводит {'id': u'1627207:28315', ‘title’: u'M'} хотя должно ‘id’: u'20509:28341' + ‘id’: u'1627207:28315' + если есть следующий…

Мне не то что бы нужно объединить их в один список, мне нужно создать цепочки. К примеру:

[ , , \]

1.4.6
1.4.7
1.4.8
1.5.6
1.5.7
1.5.8

2.4.6
2.4.7
2.4.8
2.5.6
2.5.7
2.5.8

Отредактировано kirillka (Май 18, 2016 14:39:33)

Офлайн

#4 Май 18, 2016 14:40:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Помогите перебрать массив

Напиши в теге code, что должно получиться.

Из этого

[
	[{'id': u'20509:28341', 'title': u'\u9ed1\u8272'}, {'id': u'20509:28323', 'title': u'\u7c89\u8272'}],
	[{'id': u'1627207:28315', 'title': u'M'}, {'id': u'1627207:28316', 'title': u'L'}]
]
должно получиться что?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version