una tuplas tupla tamaƱo recorrer metodos listas lista convertir conjuntos como arreglos python list tuples

tuplas - metodos de listas en python



Desempaquetar una lista/tupla de pares en dos listas/tuplas (2)

Posible duplicado:
Una función de transposición / descompresión en Python

Tengo una lista que se ve así:

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

Quiero separar la lista en 2 listas.

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

Puedo hacerlo, por ejemplo, con:

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

Pero quiero saber si hay una solución más elegante.


>>> 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'')

Editar: Tenga en cuenta que zip(*iterable) es su propia inversa:

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

Al desempacar en dos listas, esto se convierte en:

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

Adición sugerida por rocksportrocker.


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