Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengira Perbezaan Antara Elemen Berturut-turut dengan Cekap dalam Senarai Python?

Bagaimana untuk Mengira Perbezaan Antara Elemen Berturut-turut dengan Cekap dalam Senarai Python?

Susan Sarandon
Susan Sarandonasal
2024-10-28 06:15:30562semak imbas

 How to Efficiently Calculate Differences Between Consecutive Elements in a Python List?

Mengira Perbezaan antara Elemen Senarai dalam Python

Selalunya dalam pemprosesan data, kita menghadapi situasi di mana kita perlu mengira perbezaan antara elemen dalam satu senarai. Ini boleh dicapai menggunakan pelbagai teknik dalam Python.

Ungkapan Lambda lwn. Pemahaman Senarai

Terdapat dua pendekatan biasa untuk tugas ini: ungkapan lambda dan pemahaman senarai. Kedua-dua teknik mempunyai kelebihan tersendiri. Mari terokai mereka:

Ekspresi Lambda:

<code class="python">result = [j - i for i, j in zip(t[:-1], t[1:])]</code>

Pemahaman Senarai:

<code class="python">result = [i - j for i, j in [(t[i], t[i+1]) for i in range(len(t)-1)]]</code>

Perbandingan dan Prestasi

Walaupun kedua-dua pendekatan adalah sah, pemahaman senarai biasanya berprestasi lebih baik daripada ungkapan lambda. Ini kerana pemahaman senarai lebih padat dan mudah dibaca. Selain itu, ia dioptimumkan untuk manipulasi senarai dan selalunya menghasilkan pelaksanaan kod yang lebih pantas.

Contoh

Pertimbangkan senarai t = [1, 3, 6]. Kami ingin mengira perbezaan antara elemen berturut-turut, menghasilkan senarai v = [2, 3]. Menggunakan pendekatan pemahaman senarai, kita boleh mencapai ini seperti berikut:

<code class="python">t = [1, 3, 6]
v = [j - i for i, j in zip(t[:-1], t[1:])]
print(v)  # Output: [2, 3]</code>

Dalam contoh ini, fungsi zip menggandingkan elemen bersebelahan dalam senarai, dan pemahaman senarai menolak setiap pasangan untuk menghasilkan perbezaan yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Antara Elemen Berturut-turut dengan Cekap dalam Senarai Python?. 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