[Python-es] ¿cómo puedo convertir una lista multidimensional en listas unidimensionales?

Jose Manuel Llorente Pinto manequick en gmail.com
Jue Mar 17 18:43:58 EDT 2016


Así es. Una vez más muchas gracias.


El jueves, 17 de marzo de 2016, Ricardo Cárdenes <ricardo.cardenes en gmail.com>
escribió:

> No entiendo exactamente a qué te refieres con " al inicializar las
> variables...", porque nunca mostraste tu código, pero sospecho que estabas
> dando un tamaño inicial a las listas. Eso no es necesario para nada, ya que
> no son de tamaño fijo y estás haciendo más trabajo de la cuenta. Usando un
> bucle, tu código podría haber sido:
>
> Lista1, Lista2 = [], []
> for l1, l2 in Matriz:
>    Lista1.append(l1)
>    Lista2.append(l2)
>
>
> De esa manera no tienes que inicializar las listas de destino: simplemente
> las creas vacías y vas añadiendo valores según necesitas.
>
> 2016-03-17 11:34 GMT-10:00 Jose Manuel Llorente Pinto <manequick en gmail.com
> <javascript:_e(%7B%7D,'cvml','manequick en gmail.com');>>:
>
>> Muchas gracias Ricardo.
>> Funciona perfectamente. Y además gracias a eso también he conseguido
>> hacerlo con el bucle for.
>> El problema residía en que al inicializar las variables no las
>> dimensionaba bien; cuando me he dado cuenta, he escrito *variable =
>> [None]*n *y también corre.
>> Muy agradecido.
>>
>> El 17 de marzo de 2016, 21:03, Ricardo Cárdenes <
>> ricardo.cardenes en gmail.com
>> <javascript:_e(%7B%7D,'cvml','ricardo.cardenes en gmail.com');>> escribió:
>>
>>> De todas maneras, te respondo. Eso es un problema conocido y la manera
>>> más rápida de hacer lo que quieres es esto:
>>>
>>>   Lista1, Lista2 = zip(*Matriz)
>>>
>>> usando herramientas propias de Python. Pero si necesitas escribir código
>>> que lo haga (eg. para una tarea que precise mostrar que sabes usar bucles),
>>> mejor no uses eso.
>>>
>>> Saludos,
>>> Ricardo
>>>
>>> 2016-03-17 9:59 GMT-10:00 Ricardo Cárdenes <ricardo.cardenes en gmail.com
>>> <javascript:_e(%7B%7D,'cvml','ricardo.cardenes en gmail.com');>>:
>>>
>>>> Muestra el código que has intentado.
>>>>
>>>> Saludos,
>>>> Ricardo
>>>>
>>>> 2016-03-17 9:32 GMT-10:00 Jose Manuel Llorente Pinto <
>>>> manequick en gmail.com
>>>> <javascript:_e(%7B%7D,'cvml','manequick en gmail.com');>>:
>>>>
>>>>> Tengo una lista equivalente a una matriz de n filas por 2 columnas y
>>>>> quiero individualizar cada una de las dos columnas. Lo he intentado con
>>>>> diferentes bucles for, pero en todos los casos me arroja un error del tipo
>>>>> "list assignment index out of range".
>>>>> Un ejemplo de lo que pretendo sería lo siguiente:
>>>>>
>>>>> Matriz = [[8,2], [4,3], [9,1], [3,5], [5,4], [3,1], [1,1]]
>>>>>
>>>>> y quiero obtener:
>>>>>
>>>>> Lista1 = [8,4,9,3,5,3,1]
>>>>> Lista2 = [2,3,1,5,4,1,1]
>>>>>
>>>>> Como me estoy iniciando en Python es probable que la resolución de
>>>>> esto sea bastante simple , pero después de buscar y buscar no he encontrado
>>>>> ninguna solución.
>>>>>
>>>>> Muchas gracias.
>>>>>
>>>>> _______________________________________________
>>>>> Python-es mailing list
>>>>> Python-es en python.org
>>>>> <javascript:_e(%7B%7D,'cvml','Python-es en python.org');>
>>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>
>>>>>
>>>>
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> <javascript:_e(%7B%7D,'cvml','Python-es en python.org');>
>>> https://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> <javascript:_e(%7B%7D,'cvml','Python-es en python.org');>
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20160317/f28ad796/attachment.html>


Más información sobre la lista de distribución Python-es