Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Pemahaman Senarai Bersarang dalam Python Berfungsi dan Apakah Persamaannya dalam Bentuk Gelung?

Bagaimanakah Pemahaman Senarai Bersarang dalam Python Berfungsi dan Apakah Persamaannya dalam Bentuk Gelung?

DDD
DDDasal
2024-10-29 14:30:02487semak imbas

How do Nested List Comprehensions in Python Work and What are Their Equivalents in Loop Form?

Memahami Pemahaman Senarai Bersarang

Pemahaman senarai menawarkan sintaks yang ringkas dan elegan untuk memanipulasi koleksi dalam Python. Dengan menggabungkan bersarang untuk gelung, seseorang boleh membina struktur data yang kompleks dengan mudah. Berikut ialah pecahan terperinci tentang cara pemahaman senarai bersarang berfungsi:

Pertimbangkan pemahaman senarai yang diberikan:

<code class="python">[(min([row[i] for row in rows]),max([row[i] for row in rows])) 
for i in range(len(rows[0]))]</code>

Kod ini bersamaan dengan gelung berikut:

<code class="python">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)</code>

Secara umum, pemahaman senarai bersarang bagi borang:

<code class="python">[exp2([exp1 for x in xSet]) for y in ySet]</code>

boleh diterjemahkan kepada:

<code class="python">result = []
for y in ySet:
  innerResult = []
  for x in xSet:
    innerResult.append(exp1)
  exp2Result = exp2(innerResult)
  result.append(exp2Result)</code>

Untuk kes yang lebih mudah, seperti:

<code class="python">[exp1 for x in xSet for y in ySet] </code>

ia bersamaan dengan:

<code class="python">result = [] 
for x in xSet:
  for y in ySet: 
    result.append(exp1)</code>

manakala,

<code class="python">[[exp1 for x in xSet] for y in ySet]</code>

samaan dengan:

<code class="python">result = []
for y in ySet:
  innerResult = []
  for x in xSet:
    innerResult.append(exp1)
  result.append(innerResult)</code>

Adalah penting untuk ambil perhatian bahawa penyarang untuk gelung dalam pemahaman senarai tunggal sentiasa dari kiri ke kanan. Contohnya:

<code class="python">[item for item in row for row in matrix] </code>

Kod ini tidak akan berfungsi kerana 'baris' pembolehubah gelung dalam tidak ditakrifkan dalam gelung luar. Bentuk yang betul ialah:

<code class="python">[item for row in matrix for item in row] </code>

Atas ialah kandungan terperinci Bagaimanakah Pemahaman Senarai Bersarang dalam Python Berfungsi dan Apakah Persamaannya dalam Bentuk Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn