文字列のリストが2つあり、各リストの対応するエントリを連結するとします。例えば、a=list("abcd")
とb=list("1234")
を計算し["a1","b2","c3","d4"]
ます。
これは、一般に操作がリストにメンバーごとに適用される配列ベースのプログラミング言語では簡単です。たとえば、私のゴルフ言語Pipのコードは単純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ではオブジェクトは問題ありません)。
可能性のある重複Pythonでゴルフをするためのヒント
—
マスト
@Mastヒントリストには、この特定の質問に対処する回答が含まれていますか?
—
マーティンエンダー
@MartinBüttnerもしそうでなければ、そうすべきです。散らかるのを防ぎ、すべてのトリックを維持します。
—
マスト