Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Ungkapan Lambda dan Pemahaman Senarai Berbanding Apabila Mengira Perbezaan dalam Senarai Python?
Mencari Perbezaan Antara Elemen dalam Senarai Python
Mengira perbezaan antara elemen bersebelahan dalam senarai ialah tugas biasa dalam analisis dan manipulasi data. Dua penyelesaian popular termasuk ungkapan lambda dan pemahaman senarai.
Ungkapan Lambda
Ekspresi Lambda menyediakan sintaks ringkas untuk mentakrifkan fungsi tanpa nama. Untuk mengira perbezaan menggunakan ungkapan lambda, anda boleh menggunakan kod berikut:
<code class="python">differences = list(map(lambda x, y: y - x, t[:-1], t[1:]))</code>
Kod ini berulang ke atas elemen dalam senarai t, tidak termasuk elemen terakhir dan mengira perbezaan antara elemen semasa dan seterusnya menggunakan fungsi lambda lambda x, y: y - x. Perbezaan yang terhasil disimpan dalam senarai perbezaan.
Pemahaman Senarai
Pemahaman senarai menawarkan cara yang lebih padat untuk menentukan jujukan dalam Python. Untuk membuat senarai perbezaan menggunakan kefahaman senarai, anda boleh menggunakan kod berikut:
<code class="python">differences = [j - i for i, j in zip(t[:-1], t[1:])]</code>
Kod ini menggunakan fungsi zip untuk mengulang elemen dalam senarai t, tidak termasuk elemen terakhir dan berpasangan mereka sebagai tupel. Setiap tuple mengandungi elemen semasa dan elemen seterusnya. Pemahaman senarai kemudiannya menggunakan operasi tolak pada setiap tuple dan menjana senarai perbezaan.
Perbandingan
Kedua-dua ungkapan lambda dan pemahaman senarai boleh digunakan untuk mengira perbezaan dalam Senarai Python. Walau bagaimanapun, pemahaman senarai biasanya lebih ringkas dan boleh dibaca untuk tugasan khusus ini. Mereka juga mengelakkan keperluan untuk mentakrifkan fungsi secara eksplisit, yang boleh memberi manfaat dalam sesetengah kes.
Contoh
Memandangkan senarai t=[1, 3, 6] , kod di bawah menunjukkan cara mengira perbezaan menggunakan kedua-dua kaedah:
<code class="python">print([j-i for i, j in zip(t[:-1], t[1:])]) # list comprehension print(list(map(lambda x, y: y - x, t[:-1], t[1:]))) # lambda expression</code>
Kod ini akan mengeluarkan hasil berikut:
[2, 3] [2, 3]
Atas ialah kandungan terperinci Bagaimanakah Ungkapan Lambda dan Pemahaman Senarai Berbanding Apabila Mengira Perbezaan dalam Senarai Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!