ネストされたリスト内包表記について
ネストされたリスト内包表記は、複雑なデータ構造を簡潔かつ効率的な方法で生成するための強力なツールを提供します。それらの動作を理解するために、その構造を分解してみましょう。
一般的な構文:
[exp2([exp1 for x in xSet]) for y in ySet]
拡張ループ形式への変換:
result = [] for y in ySet: innerResult = [] for x in xSet: innerResult.append(exp1) exp2Result = exp2(innerResult) result.append(exp2Result)
単純化されたケース:
[exp1 for x in xSet in y for ySet]:
result = [] for x in xSet: for y in ySet: result.append(exp1)
[[xSet の x の exp1] ySet の y の]:
result = [] for y in ySet: innerResult = [] for x in xSet: innerResult.append(exp1) result.append(innerResult)
例:
次のネストされたリストの内包表記:
[(min([row[i] for row in rows]), max([row[i] for row in rows])) for i in range(len(rows[0]))]
タプルのリストを生成します。各タプルには、行リスト内のすべての行にわたる指定された列の最小値と最大値が含まれます。 。同等の展開されたループ形式は次のようになります。
result = [] for i in range(len(rows[0])): innerResult = [] for row in rows: innerResult.append(row[i]) innerResult2 = [] for row in rows: innerResult2.append(row[i]) tuple = (min(innerResult), max(innerResult2)) result.append(tuple)
キー ポイント:
この体系的なアプローチを理解することで、この概念を幅広いリスト理解のバリエーションに適用できます。
以上が入れ子になったリスト内包表記はどのように機能するのか: 構造と機能を解読する?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。