Java/Python 導入ガイド:《6》組み込み関数 filter を使って
Java プログラマーのための Python 導入ガイド〈初級/入門編〉《Jython2.5.0》
《6》組み込み関数 filter を使って
《著》森こねこ・本間りす・小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2003/05/23 ● 第2版♪2009/04/03
》作業中です《 2006年7月 3日 (月)
組み込み関数 filter を使って
Python では、組み込み関数 filter を使って、同様のことができます。
《組み込み関数 filter》
filter(function or None, sequence) -> list, tuple, or string式 function(e) を評価したときに True となるような、sequence 内の各要素 e を列挙した、リスト/タプル/文字列をリターン値とします。
>>> s = "Java Programming Language" >>> filter(str.isupper, s) 'JPL'文字列 s の中から、大文字 isupper でないものを削除した文字列が得られます。
>>> t = tuple(range(5)) >>> filter(lambda e: e%2, t) (1, 3)タプル t の中から、奇数 e%2 でない要素を削除した、新たなタプルが得られます。
リスト:list
>>> c = range(5) >>> filter(cond, c) [1, 3] >>> filter(lambda e:e%2, c) [1, 3] >>> c [0, 1, 2, 3, 4]
組み込み関数 filter を利用すると、リスト c から、奇数でない要素を削除した、新たなリストが得られます。このとき、もとの c には影響しません。
集合:set
>>> c = set(range(5)) >>> set(filter(cond, c)) set([1, 3]) >>> set(filter(lambda e:e%2, c)) set([1, 3]) >>> c set([0, 1, 2, 3, 4])
組み込み関数 filter を利用すると、集合 c から、奇数でない要素を削除した、新たな集合が得られます。このとき、もとの c には影響しません。
写像:dict
>>> c = dict([(e,"ABCDE"[e]) for e in range(5)]) >>> dict([(e,c[e]) for e in filter(cond, c)]) {1: 'B', 3: 'D'} >>> dict([(e,c[e]) for e in filter(lambda e:e%2, c)]) {1: 'B', 3: 'D'} >>> c {0: 'A', 1: 'B', 2: 'C', 3: 'D', 4: 'E'}
組み込み関数 filter を利用すると、辞書 c から、奇数でないキー要素を含む要素対を削除した、新たな辞書が得られます。このとき、もとの c には影響しません。
Last updated♪2009/08/04