「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > ネストされたリスト内包表記は複雑なリストの作成をどのように簡素化できるのでしょうか?

ネストされたリスト内包表記は複雑なリストの作成をどのように簡素化できるのでしょうか?

2024 年 11 月 20 日に公開
ブラウズ:970

How Can Nested List Comprehensions Simplify Complex List Creation?

ネストされたリスト内包表記の説明

ネストされたリスト内包表記は、イテラブルを使用して複雑なリストを動的に作成する簡潔な方法を提供します。これらの機能は同等の for ループを通じて理解できますが、体系的なアプローチは、さまざまな例に概念を適用するのに役立ちます。

構文と翻訳

ネストされたリストの内包表記は次の構文に従います。

[exp2([exp1 for x in xSet]) for y in ySet]

これを詳しく見ると、ySet の要素 y ごとに内部リストが作成されることがわかります。この内部リスト内で、式 exp1 が xSet の要素 x ごとに評価されます。最後に、外側のリスト内包表記は、作成された各内側リストを使用して exp2 を評価します。 &&&]

[exp1 for x in xSet for y in ySet]

for ループと同等:

result = [] xSet の x の場合: ySet の y の場合: result.append(exp1)
  • リストの内包表記:
[exp1 for x in xSet for y in ySet]
[[[exp1 for x in xSet] for y in ySet]

ループと同等:
[exp1 for x in xSet for y in ySet]
結果 = [] ySet の y の場合: innerResult = [] xSet の x の場合: innerResult.append(exp1) result.append(innerResult)
  • 体系的なアプリケーション
一般化するには、次の手順に従うことができます。
[exp1 for x in xSet for y in ySet]

最も内側から開始します。 loop.

result = []
for y in ySet:
    innerResult = []
    for x in xSet:
        innerResult.append(exp1)
    result.append(innerResult)

次の for ループに移動し、前のステップで作成したリストを iterable として使用します。内包表記の for ループごとにステップ 1 ~ 3 を繰り返します。

外部式 (exp2) を使用して最終結果を評価します。

  1. for ループのネストが発生することに注意してください。左から右へ、簡潔な構文で複雑なリスト変換を可能にします。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3