Tengo

g = [[1], [2], [3], [4], [5], [6]]
c = [[9], [8], [7], [6], [5], [4]]

Y necesito conseguir

t = [[1,9], [2,8], [3,7], [4,6], [5,5], [6,4]]

Por favor ayúdame aquí

-2
Vishnu Prasad H 14 ene. 2017 a las 19:51

3 respuestas

La mejor respuesta

Utilice la zip() función aquí para combinar los elementos de las listas anidadas:

t = [a + b for a, b in zip(g, c)]

Demo:

>>> g = [[1], [2], [3], [4], [5], [6]]
>>> c = [[9], [8], [7], [6], [5], [4]]
>>> [a + b for a, b in zip(g, c)]
[[1, 9], [2, 8], [3, 7], [4, 6], [5, 5], [6, 4]]

Se puede hacer un poco más eficiente utilizando el iterativo zip() función de Python 3 / itertools:

try:
    from future_builtins import zip
except ImportError:
    pass

t = [a + b for a, b in zip(g, c)]

try..except solo es necesario si desea que el código funcione tanto en Python 2 como en 3.

5
Martijn Pieters 14 ene. 2017 a las 16:57

Hola, si estás en Python 2.7, puedes usar zip

g = [[1], [2], [3], [4], [5], [6]]
c = [[9], [8], [7], [6], [5], [4]]
t = zip(g, c)
[([1], [9]), ([2], [8]), ([3], [7]), ([4], [6]), ([5], [5]), ([6], [4])]
0
bobtt 14 ene. 2017 a las 18:34

Otra opción sin zip, usando la comprensión de la lista:

>>> g = [[1], [2], [3], [4], [5], [6]]
>>> c = [[9], [8], [7], [6], [5], [4]]
>>> result = [ [g[i][0], c[i][0]] for i in range(min([len(g), len(c)])) ]
>>> print(result)
[[1, 9], [2, 8], [3, 7], [4, 6], [5, 5], [6, 4]]
>>> 
0
Maurice Meyer 14 ene. 2017 a las 17:08