Распаковка списка / кортежей пар на два списка / кортежей

Возможный дубликат:
Функция Transpose / Unzip в Python

У меня есть список, который выглядит так:

list = (('1','a'),('2','b'),('3','c'),('4','d')) 

Я хочу отделить список в 2 списках.

 list1 = ('1','2','3','4') list2 = ('a','b','c','d') 

Я могу сделать это, например, с помощью:

 list1 = [] list2 = [] for i in list: list1.append(i[0]) list2.append(i[1]) 

Но я хочу знать, есть ли более элегантное решение.

2 Solutions collect form web for “Распаковка списка / кортежей пар на два списка / кортежей”

 >>> source_list = ('1','a'),('2','b'),('3','c'),('4','d') >>> list1, list2 = zip(*source_list) >>> list1 ('1', '2', '3', '4') >>> list2 ('a', 'b', 'c', 'd') 

Изменить: обратите внимание, что zip(*iterable) является собственным инверсным:

 >>> list(source_list) == zip(*zip(*source_list)) True 

При распаковке в два списка это становится:

 >>> list1, list2 = zip(*source_list) >>> list(source_list) == zip(list1, list2) True 

Добавление, предложенное rockportrocker.

 list1= ( x[0] for x in source_list ) list2= ( x[1] for x in source_list ) 
Interesting Posts

Обтекание текста в редакторе PyDev

SVG на стороне сервера для PNG (или какой-либо другой формат изображения) в python

чтение csv-файлов в scipy / numpy в Python

pyHook + pythoncom перестает работать после нажатия слишком большого количества клавиш

Доступ к `http: // localhost: 8080 / admin / djcelery /` возвращает 403 в Django

Декодирование шестнадцатеричной строки в Python 3

Как установить заголовки разработки Python на Mac OS X?

Отслеживание изменений модели в SQLAlchemy

Разбор даты в python без использования значения по умолчанию

существует ли общий способ установки record_defaults для tf.decode_csv?

Заменить все небуквенные символы в строке

Uhandled ошибка в pysnmp витой клиент с более чем 1000 хостов

как скопировать каталог со всем файлом из c: \\ xxx \ yyy в c: \\ zzz \ in python

Писериальный буфер заполняется быстрее, чем я могу читать

Создание фрагментов изображения (m * n) исходного изображения с использованием Python и Numpy

Python - лучший язык программирования в мире.