lambda式+map関数について

応用例 関連: [Python] lambda式について [Python] map関数 [amazonjs asin=”B009Z30HPG” locale=”JP” title=”Dive Into Python 3 日本語版”] map関数 の回で [shell title=”map関数の例”] In [1]: array = [x for x in range(0, 10)] In [2]: array Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [3]: def sum(x):   …: """ 引数に1足して返す""" …: return x + 1 …: In [4]: map(sum, array) Out[4]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] <-すべての要素に1足されている。 [/shell] のようにmap関数の使い方を紹介した。が、defで一度関数を定義しなくてもlambda式で一行で記述できる。 [shell] In [1]: map(lambda x: x + 1, range(0, 10)) Out[1]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [/shell] スマート。  

[python]リスト内包表記(list comprehensions)について 1

素敵。 応用例書くかもしれないからタイトルに1をつける。。。 [amazonjs asin=”B009Z30HPG” locale=”JP” title=”Dive Into Python 3 日本語版”]   リスト内包表記って リストを定義するときに通常は、 [python] array = [0,1,2,3,4,5,6,7,8,9] [/python] のように定義する。が、全然スマートじゃない。 それを内包表記、つまり[]の中で色々してスマートに定義する方法。   具体的に ちょっとだけ「ぽく」書くと [shell title=”ぽい方法”] In [1]: array = [] In [2]: for x in range(0, 10): …: array.append(x) …: In [3]: array Out[3]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [/shell] とできる。とはいえ、配列を定義するのに数行書かないといけないのは なんとなくイケてない。 ということで内包表記を使うと [shell title=”内包表記の例”] In [1]: array = [x for x in range(0, 10)] In [2]: array Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [/shell] となる。 一見よくわからないけど、リスト内でfor文を回して出てきた値(x)をリストに入力する感じ。   ちょっとした応用例 10未満の偶数だけリストにしたい場合、普通だと [python] array = [0, 2, 4, 6, 8] [/python] と書く。さっきのようにちょっと「ぽく」書くと、 [shell title=”ぽい例”] In [1]: array = [] In [2]: for…