Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 9, 2014 14:57:29

info.rss
Зарегистрирован: 2014-01-12
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Разгруппировка списков в списке

Есть такие данные:

(1,
  (11, a, w), 
  (24, пd, fпр), 
  (44, dы, fав), 
)
(2, 
  (66, аd, f), 
  (24, d, f ), 
)
(4, 
  (5, d, sd), 
)
...
или это может быть словарь, не имеет значение
как это превратить, в это:
[(1, 11, u'a', u'w'), 
(1, 24, u'пd', u'fпр'), 
(1, 44, u'dы', u'fав'), 
(2, 66, u'аd', u'f'), 
(2, 24, u'd', u'f' ), 
(4, 5, u'd', u'sd')]

Отредактировано info.rss (Ноя. 9, 2014 14:58:54)

Офлайн

#2 Ноя. 10, 2014 00:23:35

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

Разгруппировка списков в списке

>>> from itertools import repeat, chain
>>> 
>>> lst = [
... (1,
...   (11, 'a', 'w'), 
...   (24, 'пd', 'fпр'), 
...   (44, 'dы', 'fав'), 
... ),
... (2, 
...   (66, 'аd', 'f'), 
...   (24, 'd', 'f' ), 
... ),
... (4, 
...   (5, 'd', 'sd'), 
... )
... ]
>>> 
>>> out = list(chain.from_iterable(zip(repeat(i[0]), i[1:]) for i in lst))
>>> out
[(1, (11, 'a', 'w')), (1, (24, 'пd', 'fпр')), (1, (44, 'dы', 'fав')), (2, (66, 'аd', 'f')), (2, (24, 'd', 'f')), (4, (5, 'd', 'sd'))]
>>>



Офлайн

#3 Ноя. 10, 2014 00:47:55

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Разгруппировка списков в списке

out = []
for i in lst:
    out += [(i[0],) + j for j in i[1:]]
lst = [(1,
        (11, 'a', 'w'),
        (24, 'pd', 'fpr'),
        (44, 'du', 'fav'),
        ),
       (2,
        (66, 'ad', 'f'),
        (24, 'd', 'f'),
        ),
       (4,
        (5, 'd', 'sd'),
        )]
out = []
for i in lst:
    out += [(i[0],) + j for j in i[1:]]
print out
[(1, 11, 'a', 'w'), (1, 24, 'pd', 'fpr'), (1, 44, 'du', 'fav'), (2, 66, 'ad', 'f'), (2, 24, 'd', 'f'), (4, 5, 'd', 'sd')]



————————————————
-*- Simple is better than complex -*-

Офлайн

#4 Ноя. 10, 2014 09:41:19

info.rss
Зарегистрирован: 2014-01-12
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Разгруппировка списков в списке

Отлично, то что надо, спасибо

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version