2013-04-16 2 views
6

У меня есть кортеж кортежей:Перестановка кортеж кортежей в Python

t = ((1, 'one'), (2, 'two')) 

Мне нужно это в следующем формате:

((1, 2), ('one', 'two')) 

Как я могу преобразовать его? Я могу сделать что-то вроде:

digits  = tuple (digit for digit, word in t) 
words  = tuple (word for digit, word in t) 
rearranged = tuple (digits, words) 

Но это кажется не изящным, я полагаю, что есть более прямое решение.

+3

Это называется транспонирование – jamylak

ответ

12

Используйте следующее:

tuple(zip(*t)) 
Смежные вопросы