のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

Python リスト内包表記

Sponsored Links

皆さんこんにちは
お元気ですか?私は元気です。

さて、リスト内包表記と呼ばれる機能がついている。

配列生成

C++の配列の中身を作るときはこんな感じ

a[100];
for(int i = 0; i < 100; i++){
    a[i] = i;
}

これをPythonで書くとこうなります。

a = []
for i in xrange(100):
  a.append(i)

リスト内包表記

さて、Pythonだと一行で書き込むことができる。

[i for i in xrange(100)]

更にif文を組み合わせることができるという非常に難儀な技を繰り出すことができる。

vector<int> a
for(int i = 0; i < 100; i++){
    if(i % 2 == 0){
        a.push_back(i);
    }
}

こんなCppの文章をPythonで書くと1行にできる。

[i for i in xrange(100) if i % 2 == 0]

すっきりしますね。

読みにくさと意味不明さは倍増しますが、2重ループも書くことができます。

[i*j for i in xrange(100) for j in xrange(100)]

因みにリスト生成速度はこちらのほうが早いです。

ではー皆さんよければ作ってくださいな。