各プログラミング言語には、独特な記法があります。Pythonでもコードの文字数を減少させることができる面白い記法があります。
内包表記は、その一つだと思います。
リストの内包表記を見てみます。
例えば、「0から11までの整数で3で割り切れない数のリスト」を作るとします。
通常のコードでは、このようになると思います。
num = [] for i in range(12): if i % 3: num.append(i) print(num)
[1, 2, 4, 5, 7, 8, 10, 11]
これを内包表記で書くと
[要素 for 変数名 in 繰返しオブジェクト if 条件式]
で記述でき、実際には下記のようになります。
num = [i for i in range(12) if i % 3] print(num)
[1, 2, 4, 5, 7, 8, 10, 11]
すごく省略できていいですね
ちなみに、辞書形式でも生成できます。
num = {str(i) : i for i in range(12) if i % 3} print(num)
{'1': 1, '2': 2, '4': 4, '5': 5, '7': 7, '8': 8, '10': 10, '11': 11}