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
Lepaskan: 2024-10-29 14:30:02
asal
522 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Secara umum, pemahaman senarai bersarang bagi borang:

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

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>
Salin selepas log masuk

Untuk kes yang lebih mudah, seperti:

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

ia bersamaan dengan:

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

manakala,

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

samaan dengan:

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

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan