Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Berulang Lebih Pasangan atau Kumpulan Elemen dalam Senarai Python?

Bagaimanakah Saya Boleh Berulang Lebih Pasangan atau Kumpulan Elemen dalam Senarai Python?

Susan Sarandon
Susan Sarandonasal
2024-12-15 21:20:13609semak imbas

How Can I Iterate Over Pairs or Groups of Elements in a Python List?

Lelaran Pada Setiap Dua Elemen dalam Senarai

Dalam Python, lelaran pada senarai selalunya melibatkan penggunaan gelung for atau pemahaman senarai. Walau bagaimanapun, apabila anda perlu mengakses setiap dua elemen bersama-sama, kaedah standard mungkin tidak mencukupi.

Untuk mengulangi setiap pasangan elemen dalam senarai, anda boleh menggunakan pairwise() pelaksanaan:

def pairwise(iterable):
    "s -> (s0, s1), (s2, s3), (s4, s5), ..."
    a = iter(iterable)
    return zip(a, a)

l = [1, 2, 3, 4, 5, 6]

for x, y in pairwise(l):
    print(f"{x} + {y} = {x + y}")

Fungsi ini berulang melalui senarai dua kali, menggandingkan setiap elemen dengan yang seterusnya. Ia menghasilkan output yang serupa dengan ini:

1 + 2 = 3
3 + 4 = 7
5 + 6 = 11

Untuk penyelesaian yang lebih umum, pertimbangkan fungsi grouped(), yang membolehkan anda mengulangi kumpulan n elemen:

def grouped(iterable, n):
    "s -> (s0,s1,s2,...sn-1), (sn,sn+1,sn+2,...s2n-1), (s2n,s2n+1,s2n+2,...s3n-1), ..."
    return zip(*[iter(iterable)] * n)

for x, y in grouped(l, 2):
    print(f"{x} + {y} = {x + y}")

Fungsi ini mengambil senarai dan saiz kumpulan sebagai argumen dan mengembalikan lelaran yang menghasilkan kumpulan elemen. Contohnya, memanggil berkumpulan([1, 2, 3, 4, 5, 6], 3) akan menghasilkan:

(1, 2, 3)
(4, 5, 6)

Dalam Python 2, anda boleh menggunakan izip bukannya zip untuk keserasian tujuan.

Kaedah ini menyediakan cara yang cekap dan fleksibel untuk mengulang elemen dalam senarai, membolehkan anda memprosesnya secara berpasangan atau kumpulan mengikut keperluan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berulang Lebih Pasangan atau Kumpulan Elemen 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