Cipher map(checkio)

rotateして舐めてく富豪実装。

def recall_password(cipher_grille, ciphered_password):
    rotate = lambda x: list(zip(*reversed(x)))
    j = "".join
    r = ""
    for _ in range(len(cipher_grille)):
        for x, y in zip(j(cipher_grille), j(ciphered_password)):
            if x == 'X':
                r += y
        cipher_grille = list(map(j, rotate(cipher_grille)))
    return r

ループ内でcipher_grilleを更新してるのでリスト内包できない。

はすけるのiterate的なやつを実装すればループを一行にまとめるのも無理ではないだろう(やらない)