2017-06-29 1 views
0

Zum Beispiel Karte, ich habe folgende zwei ListenPython Wie zwei Liste von Lambda paaren und

listA = [ ‚ein‘, ‚zwei‘, ‚drei‘] ListeB = [ ‚Apfel‘, 'Kirsche ',' Wassermelone ']

Wie kann ich diese zwei Listen paaren, um diese Ausgabe zu bekommen, mit map und lambda?

one apple 
two cherry 
three watermelon 

Ich weiß, wie es von der Liste Verständnis zu tun,

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

aber ich kann nicht eine map und lambda Lösung herauszufinden. Irgendwelche Ideen?

+4

Warum nicht 'zip (')? – Ajax1234

+2

Dies ist der Standard-Anwendungsfall für 'zip()'. –

+0

'print (..)'? Warum "drucken"? Außerdem sieht das wie Hausaufgaben aus. –

Antwort

3

wäre die einfachste Lösung einfach sein zip wie die Verwendung in:

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

Ich denke, es wäre möglich, map und Lambda-Ausdrücke zu verwenden, aber das würde die Dinge nur unnötig komplizieren, da dies wirklich der ideale Fall für zip.

3

können Sie zip verwenden wie unten:

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

Mit Liste Verständnis und Zip:

listA=['one', 'two' , 'three'] 

listB=['apple','cherry','watermelon'] 

new_list = [a+" "+b for a, b in zip(listA, listB)] 

Ausgang:

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

Hier ist, was ich auf und es basiert, was Sie brauchen (Karte und Lambda),

Eingang:

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

Ausgang:

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

Mit map und lambda-Druck (Sie werden noch ein zip für Bequemlichkeit benötigen):

Python2.x:

from __future__ import print_function 
_ = map(lambda x: print(x[0] + ' ' + x[1]), zip(listA, listB)) 

Python3.x:

_ = list(map(lambda x: print(x[0] + ' ' + x[1]), zip(listA, listB))) 

Ausgang:

one apple 
two cherry 
three watermelon 
1

speziell Karte und Lambda unter Verwendung als gefragt ...

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

obwohl ich wahrscheinlich, dass bis brechen würde, um es

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

EDITED besser lesbar zu machen - pro Kommentar unten, listCombined = list(zip(listA,listB)) war eine Verschwendung

+2

Verwenden Sie nicht 'list (zip (listA, listB)))' ... ** warum machen Sie eine Liste aus Ihrem ZIP-Iterator? ** Das macht den ganzen Zweck zunichte. –

+0

Sie haben Recht. bearbeitet. – kmh

Verwandte Themen