Це питання поради щодо гольфу в пітон .
Припустимо, у вас є два списки рядків, і ви хочете з'єднати відповідні записи з кожного списку. Наприклад, a=list("abcd")
і b=list("1234")
, обчисліть ["a1","b2","c3","d4"]
.
Це тривіально для мов програмування на основі масиву, де операції, як правило, застосовуються впорядковано до списку. Наприклад, у моїй мові для гольфу Pip код просто a.b
. Але в Python це не так просто.
Пітонічний спосіб, ймовірно, використання zip
та розуміння списку (25 символів):
[x+y for x,y in zip(a,b)]
Інший метод полягає map
в функції лямбда (23):
map(lambda x,y:x+y,a,b)
Нижче наведено найкоротше, що я придумав (21):
map("".join,zip(a,b))
Чи є коротший метод?
Припустимо, що списки мають однакову довжину і що якийсь ітерабельний - це все, що потрібно (тому map
об’єкт прекрасний у Python 3).