Python 配列 フィルター 絞り込み 検索 Filter | スクラムとは 仕事が進まなく技術力もないリーダーのごっこ遊び

Python 配列 フィルター 絞り込み 検索 Filter

Python で 配列の 検索や 絞り込みを行う場合の Filter

x1 = [i for i in range(0,10)]

上記の 変数 x1 には 0〜9 までの数値が入った配列です。

filter を使って 偶数だけを取り出すと 下記のような 記述になります。

x2 = [fx for fx in filter(lambda x: x % 2 == 0, [i for i in range(0,10)])]

Python 配列 フィルタ 使い方

filter 関数内の lambda で 「 x % 2 == 0 」なら x に 結果を出すようにしています

例えば lambda x: x == 0 に変えれば x2 の配列は [0] 1つだけが入ります。

 

この filter() は class filter(Iterator[_T]) クラス型です。

従って for fx in filter() として iter 処理していかないと 配列に 戻らない仕組みです。

 

クラス配列 を フィルター

単純な配列ではなく クラス配列でもFilterは使えます。

class TAVActress:
    name = ""
    kana = ""
    def __init__(self, n, k):
        self.name = n
        self.kana = k

x3 = []
x3.append(TAVActress("水奈瀬りな","みずなせりな"))
x3.append(TAVActress("市川りく","いちかわりく"))
x3.append(TAVActress("樟葉杏","くずはあん"))
x4 = [fx for fx in filter(lambda x: "り" in x.name , x3)]

配列 x4 には name に「り」が ある モノのみを 絞り込んでいます。

Python クラス配列 フィルタ 使い方