Bagaimanakah Ungkapan Lambda dan Pemahaman Senarai Berbanding Apabila Mengira Perbezaan dalam Senarai Python?

Linda Hamilton
Lepaskan: 2024-10-31 09:39:29
asal
551 orang telah melayarinya

  How Do Lambda Expressions and List Comprehensions Compare When Calculating Differences in Python Lists?

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

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

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

Kod ini akan mengeluarkan hasil berikut:

[2, 3]
[2, 3]
Salin selepas log masuk

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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan