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)
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))
Output:
1 + 2 = 3 3 + 4 = 7 5 + 6 = 11
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)
Penggunaan
for x, y in grouped(l, 2): print("{} + {} = {}".format(x, y, x + y))
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)
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!