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 zip
und ein Listenverständnis (25 Zeichen):
[x+y for x,y in zip(a,b)]
Eine andere Methode ist map
mit 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 map
Objekt ist also in Python 3 in Ordnung).