Python Cómo emparejar dos listas por lambda y mapa

Por ejemplo, he seguido dos listas

listA = [‘one’, ‘two’, ‘three’] listB = [‘apple’, ‘cherry’, ‘watermelon’]

¿Cómo puedo emparejar esas dos listas para obtener esta salida, usando map y lambda ?

 one apple two cherry three watermelon 

Sé cómo hacerlo por la lista de comprensión,

 [print(listA[i], listB[i]) for i in range(len(listA))] 

pero no puedo encontrar un map y una solución lambda . ¿Algunas ideas?

La solución más fácil sería simplemente usar zip como en:

 >>> listA=['one', 'two' , 'three'] >>> listB=['apple','cherry','watermelon'] >>> list(zip(listA, listB)) [('one', 'apple'), ('two', 'cherry'), ('three', 'watermelon')] 

Supongo que sería posible usar map y lambdas, pero eso complicaría las cosas innecesariamente, ya que este es realmente el caso ideal para el zip .

Aquí lo que obtuve basado en lo que necesitas (mapa y lambda),

Entrada:

 listA=['one', 'two' , 'three'] listB=['apple','cherry','watermelon'] list(map(lambda x, y: x+ ' ' +y, listA, listB)) 

Salida:

 ['one apple', 'two cherry', 'three watermelon'] 

Puedes usar zip como abajo:

 for item in zip(list_1, list_2): print(item) 

específicamente utilizando el mapa y lambda según lo solicitado …

 list(map(lambda tup: ' '.join(list(tup)), zip(listA,listB))) 

aunque probablemente lo dividiría para hacerlo más legible

 zipped = zip(listA,listB) tup2str = lambda tup: ' '.join(list(tup)) result = list(map(tup2str, zipped)) # ['one apple', 'two cherry', 'three watermelon'] 

EDITADO – según el comentario a continuación, listCombined = list(zip(listA,listB)) fue un desperdicio

Usando lista de comprensión y zip:

 listA=['one', 'two' , 'three'] listB=['apple','cherry','watermelon'] new_list = [a+" "+b for a, b in zip(listA, listB)] 

Salida:

 ['one apple', 'two cherry', 'three watermelon']