Это вопрос подсказки для игры в гольф на питоне .
Предположим, у вас есть два списка строк, и вы хотите объединить соответствующие записи из каждого списка. Например, с a=list("abcd")
и b=list("1234")
, рассчитать ["a1","b2","c3","d4"]
.
Это тривиально в языках программирования на основе массива, где операции обычно применяются к спискам. Например, на моем языке игры в гольф Пип код просто a.b
. Но в Python это не так просто.
Pythonic способ, вероятно, использовать 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 все в порядке).