ホームページ > バックエンド開発 > Python チュートリアル > Python でネストされたリストの内包表記を同等の for ループに変換するにはどうすればよいですか?

Python でネストされたリストの内包表記を同等の for ループに変換するにはどうすればよいですか?

DDD
リリース: 2024-10-29 07:35:02
オリジナル
322 人が閲覧しました

How can I translate nested list comprehensions into equivalent for loops in Python?

ネストされたリスト内包表記を理解する

ネストされたリスト内包表記は、Python でデータ構造を変換および結合するための簡潔かつ強力な方法を提供します。基本的な構文は、複数の for 式を角括弧で囲み、それぞれの for 式を独自の圆括号のセットで囲みます。

同等の For ループへの変換

Toネストされたリストの内包表記を理解するには、それを同等の for ループ形式に変換すると役立ちます。次の例を考えてみましょう。

[(min([row[i] for row in rows]), max([row[i] for row in rows])) for i in range(len(rows[0]))]
ログイン後にコピー

これは、次のように for ループとして表現できます。

result = []
for i in range(len(rows[0])):
  inner_result = []
  for row in rows:
    inner_result.append(row[i])
  inner_result2 = []
  for row in rows:
    inner_result2.append(row[i])
  tuple = (min(inner_result), max(inner_result2))
  result.append(tuple)
ログイン後にコピー

パターンの一般化

上記例は一般的なパターンに従います:

[exp2([exp1 for x in xSet]) for y in ySet]
ログイン後にコピー

同等の for ループ:

result = []
for y in ySet:
  inner_result = []
  for x in xSet:
    inner_result.append(exp1)
  exp2_result = exp2(inner_result)
  result.append(exp2_result)
ログイン後にコピー

その他の例

  • [exp1 for x in ySet の y に対する xSet] は、 result = [] と同等です。 for x in xSet: for y in ySet: result.append(exp1)
  • [[exp1 for x in xSet] for y in ySet] は result = [] と同等です。 ySet の y の場合: inner_result = []; xSet の x の場合: inner_result.append(exp1); result.append(inner_result)

以上がPython でネストされたリストの内包表記を同等の for ループに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート