Cómo concatenar dos matrices 2D en paralelo devolviendo una matriz 1D, por ejemplo:

ARRAYS / LISTAS

list1 = [['a'], ['b'], ['c']]

list2 = [['A'], ['B'], ['C']]

OBJETIVO:

list3 = ['a:A', 'b:B', 'c:C']

Intento:

concat_array = [itm + ':' if not itm.endswith (':') plus itm for itm in list1 + list2]
0
Luis Henrique 8 oct. 2019 a las 16:39

3 respuestas

La mejor respuesta
def join_2d_arrays(a, b, separator=":"):
    for x, y in zip(a, b):
        yield separator.join(itertools.chain(x, y))

http://ideone.com/H8ZcbT

2
Marek R 8 oct. 2019 a las 13:51

Puede concat listas como esta, por ejemplo:

list1 = [['a'], ['b'], ['c']]

list2 = [['A'], ['B'], ['C']]

list3 = []
for itm1,itm2 in zip(list1, list2):
    list3.append(itm1[0] + ':' + itm2[0])

Te consigue:

list3 = ['a:A', 'b:B', 'c:C']
1
Sharku 8 oct. 2019 a las 13:47

Tratar:

[itm1[0] + ':' + itm2[0] for itm1,itm2 in zip(list1, list2)]

Editar: comprobado y funcionó

1
אבי רוז 8 oct. 2019 a las 13:44
58287554