Как превратить несколько списков в список подсписков, где каждый подсписок состоит из одних и тех же элементов индекса во всех списках?

Как превратить несколько списков в один список подсписков, где каждый подсписок состоит из элементов с одним и тем же индексом в исходных списках?

lsta = ['a','b','c','d']
lstb = ['a','b','c','d']
lstc = ['a','b','c','d']

Desired_List = [['a','a','a'],['b','b','b'],['c','c','c'],['d','d','d']]

Кажется, я не могу использовать zip здесь, так как мне это сделать?


person Chris    schedule 29.01.2014    source источник


Ответы (2)


Список списка даст следующее:

>>> [list(x) for x in zip(lsta, lstb, lstc)]
[['a', 'a', 'a'], ['b', 'b', 'b'], ['c', 'c', 'c'], ['d', 'd', 'd']]
>>>
person James    schedule 29.01.2014

Использование zip под давлением:

>>> zip(lsta, lstb, lstc)
[('a', 'a', 'a'), ('b', 'b', 'b'), ('c', 'c', 'c'), ('d', 'd', 'd')]

Если Python 3, вам нужно преобразовать zip в список:

>>> list(zip(lsta, lstb, lstc))
[('a', 'a', 'a'), ('b', 'b', 'b'), ('c', 'c', 'c'), ('d', 'd', 'd')]
person mhlester    schedule 29.01.2014
comment
которые не возвращаются ('а','а','а','а') - person Xavier Combelle; 29.01.2014
comment
это список кортежей, а не то, что хочет владелец? - person James; 29.01.2014
comment
по общему признанию, не то, что ОП просил, но все же, вероятно, то, что ОП хочет :) - person mhlester; 29.01.2014