Dies ist eine Tippfrage zum Golfen in Python .
Angenommen, Sie haben zwei Listen mit Zeichenfolgen und möchten die entsprechenden Einträge aus jeder Liste verketten. ZB mit a=list("abcd")und b=list("1234"), rechnen ["a1","b2","c3","d4"].
Dies ist in Array-basierten Programmiersprachen trivial, in denen Operationen im Allgemeinen auf Listen angewendet werden. Zum Beispiel ist der Code in meiner Golfsprache Pip einfach a.b. Aber in Python ist das nicht so einfach.
Der pythonische Weg ist wohl zu gebrauchen zipund ein Listenverständnis (25 Zeichen):
[x+y for x,y in zip(a,b)]
Eine andere Methode ist mapmit einer Lambda-Funktion (23):
map(lambda x,y:x+y,a,b)
Folgendes ist das kürzeste, das ich mir ausgedacht habe (21):
map("".join,zip(a,b))
Gibt es eine kürzere Methode?
Angenommen, die Listen sind gleich lang und es wird nur eine Art von Iteration benötigt (ein mapObjekt ist also in Python 3 in Ordnung).