同じイテレータの.next()が呼び出されるからこうなるんだよね
端的だけどすぐには思いつかないから、分かりやすいかは微妙に感じる

operator.add() って引数全部足すのかと思ってたらもちろん違った
3つだったらこんな感じか
map(lambda *a: ''.join(i for i in a if i), *(it, ) * 3)
ワンライナーだな―これは