Pythonで文を使わないFizzBuzz

FizzBuzz問題を使って社内プログラミングコンテストを開催してみた - give IT a try
Pythonで"if"を使わない"FizzBuzzチェック関数"を三種類ほど実装する - 蟲!虫!蟲!
Pythonで文を使わずに式のみでFizzBuzzで作ってみた。コマンドラインで引数を与えてください。
lambda式、ジェネレータ式、リスト内包表記あたりはおなじみだろうけど、__import__関数なんて初めて使った。

(
    lambda end, stdout:
        [
            stdout.write(
                str(
                    (type(n) == str and n) or (n % 3 and n) or 'Fizz'
                ) + '\n'
            )
            for n in (
                (type(n) == str and n) or (n % 5 and n) or 'Buzz'
                for n in (
                    (n % 15 and n) or 'FizzBuzz'
                        for n in range(1, end + 1)
                )
            )
        ]
)(
    int(__import__('sys').argv[1]),
    __import__('sys').stdout
)

Python 2.xでも3.xでも動くように書いたつもりだけど確認は2.7でしかしてないです。print関数を使いたかったのだけど、上手くいかず、苦肉の策で標準出力にぶっこんだ。
from __future__ import print_functionを__import__関数からやろうとすると、ちゃんとprint関数がインポートされることはされるのだけど、なぜかグローバルなところ(=関数や内包表記の外)でしか使えなかった。くやしい。
あとpep8通るようにしようと思ったけど醜すぎたので諦めた。