LINUX.ORG.RU

[python]Разбить список

 


0

1

Доброе утро!

Есть список вот такого вида :

[['1','a','a','2','b','b'],
 ['a','a','a','b','b','b'],
 ['3','c','c','4','d','d'],
 ['c','c','c','d','d','d']]
необходимо получить четыре списка вида :
[['1','a','a'],
 ['a','a','a']]

[['2','b','b'],
 ['b','b','b']]

[['3','c','c'],
 ['c','c','c']]

[['4','d','d'],
 ['d','d','d']]

Содержимое упростил для наглядности, в оригинальном списке значения разные.
Уже голову сломал над решением.
Что можете посоветовать?

Ответ на: комментарий от Funny_sailor

1) Из первой строчки берешь первую половину. Из второй тоже первую. 2) Возвращаешь как элемент списка. 3) Из первой строчки берешь вторую половину. Из второй тоже вторую. 4) Возвращаешь как элемент списка. 5) Сдвигаешь текущую строчку и переход к п.1.

Тут делов то, написать генератор в четыре строчки. Это тебе даже не упражнение 1.3 из сикпа делать.

anonymous
()
Ответ на: комментарий от anonymous

Как-то так?

def foo(li):
  sz = len(li[0])/2
  for i in (x*2 for x in xrange(len(li)/2)):
    yield [li[i][:sz], li[i+1][:sz]]
    yield [li[i][sz:], li[i+1][sz:]]

anonymous
()
Ответ на: комментарий от shty

гуглил,но видимо не там)
вот это самое то!
Спасибо!

Funny_sailor
() автор топика

> список
Кто-нибудь мне объяснит наконец почему в питоне, мля, и только в питоне, не массив, мля, а список?

moscwich
()
Ответ на: комментарий от moscwich

>Кто-нибудь мне объяснит наконец почему в питоне, мля, и только в питоне, не массив, мля, а список?

См. список(информатика) в википедии.

Leron ★★
()
Ответ на: комментарий от moscwich

Кто-нибудь мне объяснит наконец почему в питоне, мля, и только в питоне, не массив, мля, а список?

Это ещё ничего, а вот почему из питона выкинули обычный цикл, в духе for(int i=0;i<10;i++)? Можно подумать у кого-нибудь возникали проблемы с пониманием того, что такое цикл и как он работает.

pathfinder ★★★★
()
Ответ на: комментарий от pathfinder

Ну, это то как-раз гудно. For в духе for(int i=0;i<10;i++) не нужен (Чем он лучше/удобнее while?), в духе For i = 1 to 20 был бы толк, но в питоне такого и не было. А сейчас он как foreach в php, это тоже очень полезно.

moscwich
()
Ответ на: комментарий от moscwich

в питоне, мля, и только в питоне, не массив, мля, а список?

Вставка элемента в середину, не?

Xenesz ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.