Python.use(better)
■ 組み込み関数 filter
% python3.0 >>> [e for e in "ABC" if ord(e)%2] ['A', 'C']
リストの内包と同等のものは、組み込み関数 filter を使うと、次のように記述できます。
>>> list(filter(lambda e:ord(e)%2,"ABC"))
['A', 'C']
すると、filter によって「イテレーター」が得られるので、
>>> filter(lambda e:ord(e)%2,"ABC")
<filter object at 0xfdcf0>
これを for 文とともに利用すると、
>>> for e in filter(lambda e:ord(e)%2,"ABC"):
... print(e)
...
A
C
filter を適用して得られる、各要素 e を順に参照できるようになります。
組み込み関数 map〈Python 2.x 版〉
Python 3.0 では(リストに代えて)イテレーターが得られるようになります。
% python2.6 >>> [e for e in "ABC" if ord(e)%2] ['A', 'C']
リストの内包と同等のものは、組み込み関数 filter を使うと、次のように記述できます。
>>> filter(lambda e:ord(e)%2,"ABC")
'AC'
すると、filter によって「文字列(シーケンス)」が得られるので、これを for 文とともに利用すると、
>>> for e in filter(lambda e:ord(e)%2,"ABC"):
... print(e)
...
A
C
filter を適用して得られる、各要素 e を順に参照できるようになります。
3.0 vs. 2.6
% python3.0 ... >>> type(filter)% python2.6 ... >>> type(filter)
Last updated♪09/03/08