2016-11-17 2 views
0

Допустим, мы имеем следующее:Список списков; как связать каждое значение с новым списком?

list1 = [['a', 'b', 'c'], ['1', '2', '3'], ['x', 'y', 'z'], ['4', '5', '6']] 

Выход Я ищу это:

[['a', '1', 'x', '4'], ['b', '2', 'y', '5'], ['c', '3', 'z', '6']] 

Примечание: длина list1 может быть длиннее или короче, не имеет значения.

Примечание: len(list1[0]) = len(list1[1]) = len(list1[any_index]), что означает, что все подписи в основном списке будут иметь одинаковую длину.

Я пробовал использовать разные циклы, используя разные способы использования индексов, но я не могу заставить что-нибудь работать, может кто-нибудь мне помочь? Я не ищу код в ответе, как бы я это сделал.

+0

Используйте 'zip'. 'zip (* list1)' –

+0

Попробуйте 'zip (* list1)' –

+0

Нам нужно посмотреть, что вы пробовали. Пожалуйста, разместите свои попытки –

ответ

2

Если вы хорошо с кортежами, просто используйте:

a = zip(*list1) 
# [('a', '1', 'x', '4'), ('b', '2', 'y', '5'), ('c', '3', 'z', '6')] 

В противном случае, просто сделать

a = [list(x) for x in zip(*list1)] 
# [['a', '1', 'x', '4'], ['b', '2', 'y', '5'], ['c', '3', 'z', '6']] 
Смежные вопросы