綺麗なコードを書いて下さい。

と言われた。

そうか。これは綺麗なコードじゃないのか。
いいだろう従おう。

ほしい関数

リストを受け取り、偶数個ずつリストで返すジェネレータ関数。
以下みたいな挙動を示すreturn_even_listを実装したい。

list1 = [1, 2, 3, 4, 5, 6]
for i in return_even_list(list1):
    print(i)

# [1, 2]
# [3, 4]
# [5, 6]

自分の実装

def return_even_list(_list):
    return (_list[i:i+2] for i in range(len(_list)) if i % 2 == 0)

内包表記大好きぃ!ジェネレータ式ぃ!うぇーーい!!

上司の実装

def return_even_list(_list):
    itered = iter(_list)
    for i, j in zip(_list, itered):
        yield i, j

iter関数使ってぼーーん。

総括

うーーんどっちがわかりやすいんだろうか。

そもそも弊社、ジェネレータを使わない文化があるし、
リスト内包と同じように理解できる方が良いと思ったんだけどなぁ。
自分のが直観的だとおもうんだけどなぁ。
また上司嫌いになっちゃったなぁ。