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

Bagaimanakah Saya Boleh Mengulangi Senarai dalam Pasangan atau Kumpulan dalam Python?

Susan Sarandon
Lepaskan: 2024-12-25 10:53:50
asal
182 orang telah melayarinya

How Can I Iterate Over Lists in Pairs or Groups in Python?

Lelaran Berpasangan Ke Atas Senarai

Lelaran ke atas elemen secara berpasangan ialah keperluan biasa apabila memanipulasi senarai. Walau bagaimanapun, standard untuk pemahaman gelung dan senarai dalam Python tidak menyediakan penyelesaian terbina dalam untuk traversal berpasangan.

Pelaksanaan Berpasangan

Untuk mengatasi had ini, a fungsi tersuai yang dipanggil pairwise() boleh dilaksanakan. Fungsi ini mengambil iterable sebagai input dan mengembalikan pasangan elemen.

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

Penggunaan

Menggunakan fungsi pairwise() ini, anda boleh mengulang elemen secara berpasangan sebagai berikut:

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

for x, y in pairwise(l):
    print("{} + {} = {}".format(x, y, x + y))
Salin selepas log masuk

Output:

1 + 2 = 3
3 + 4 = 7
5 + 6 = 11
Salin selepas log masuk

Pengumpulan Umum

Untuk kes di mana anda perlu mengulangi elemen dalam kumpulan dari sebarang saiz, fungsi yang lebih umum dipanggil grouped() boleh digunakan.

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

Penggunaan

for x, y in grouped(l, 2):
    print("{} + {} = {}".format(x, y, x + y))
Salin selepas log masuk

Taip Semakan dengan Mypy

Untuk pengguna Python 3 yang ingin melakukan semak taip dengan Mypy, fungsi grouped() boleh diberi anotasi seperti berikut:

from typing import Iterable, Tuple, TypeVar

T = TypeVar("T")

def grouped(iterable: Iterable[T], n=2) -> Iterable[Tuple[T, ...]]:
    """s -> (s0,s1,s2,...sn-1), (sn,sn+1,sn+2,...s2n-1), ..."""
    return zip(*[iter(iterable)] * n)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengulangi Senarai dalam Pasangan atau Kumpulan dalam 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