Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Pemahaman Senarai Bersarang dalam Python Berfungsi dan Apakah Persamaannya dalam Bentuk Gelung?
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!