To jest pytanie z poradami do gry w golfa w pythonie .
Załóżmy, że masz dwie listy ciągów i chcesz połączyć odpowiednie wpisy z każdej listy. Np. Za pomocą a=list("abcd")i b=list("1234"), oblicz ["a1","b2","c3","d4"].
Jest to trywialne w językach programowania opartych na macierzach, w których operacje zwykle dotyczą członków list. Na przykład w moim języku golfowym Pip kod jest po prostu a.b. Ale w Pythonie nie jest to takie proste.
Pythonicznym sposobem jest prawdopodobnie użycie zipi odczytanie listy (25 znaków):
[x+y for x,y in zip(a,b)]
Inną metodą jest mapfunkcja lambda (23):
map(lambda x,y:x+y,a,b)
Oto najkrótszy, jaki wymyśliłem (21):
map("".join,zip(a,b))
Czy jest jakaś krótsza metoda?
Załóżmy, że listy mają tę samą długość i że potrzebny jest jakiś rodzaj iterowalności (więc mapw Pythonie 3 obiekt jest w porządku).