リスト解析、主にリストを動的に作成するために使用されます
この記事では主に、リスト解析ステートメントと組み合わせた lambda、map()、および filter() の使用法について説明します
リスト解析の基本構文は次のとおりです: [expr for iter_var in iterable]
このステートメントの中核は、反復可能なオブジェクトのすべてのエントリを反復する for ループです。前述の expr はシーケンスの各メンバーに適用され、最終的な結果の値は式によって生成されたリストになります。
例を挙げてみましょう
>>> [i for i in range(0,8)]
[0,1,2 , 3,4,5,6,7]
ここで、i は基本構文の expr と iter_val の両方です。別の方法では、内部の値に対して演算を実行し、すべてのメンバーに 2 を掛けます
> > [i*2 for i in range(0,8)]
[0, 2, 4, 6, 8, 10, 12, 14]
これは基本構文に従って完全に記述されたリスト解析です
2. recycle ステートメントの後に判定条件を追加します
リストをフィルターするために、その後にいくつかのステートメントを追加することもできます。この値内の 2 で割り切れる数値
>>> [i for i in range(1,8) if i%2 == 0]
[ 2, 4, 6]
This このステートメントフィルターの使用に似ているため、Python の組み込みフィルター関数を使用して同じ値を実現することもできます
>>> l = filter(lambda x:x%2==0, range(1 , 8) )
>なぜ?フィルターの戻り値はジェネレーターであるため、ジェネレーターはすべての値を知ることはできません。
[2, 4, 6, 8, 10, 12, 14]
を使用すると取得できます [x * 2 for x in range(1,8)] も同じ効果がありますが、後者の方が、map() より効率的です
4. 行列の生成
(1、0)、(1、1)、(1、2)、(1、3)、( 1, 4),
(2, 0), (2, 1), (2, 2), (2, 3), (2, 4)]
PEP 202 でさらに参考資料を見つけることもできます。解析情報のリスト
以上がPythonのリスト解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。