Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Mengulang Melalui Dua Senarai secara Selari dalam Python?

Bagaimanakah Saya Mengulang Melalui Dua Senarai secara Selari dalam Python?

DDD
DDDasal
2024-12-22 11:28:10202semak imbas

How Do I Iterate Through Two Lists in Parallel in Python?

Cara Mengulang Melalui Dua Senarai Secara Selari

Memandangkan dua senarai, tugas biasa ialah mengulanginya secara berpasangan. Walaupun melelaran ke atas indeks ialah pendekatan yang boleh dilaksanakan, ia mungkin bukan penyelesaian yang paling Pythonic.

Penyelesaian Python 3

Dalam Python 3, fungsi zip() mengembalikan lelaran tupel, menjadikannya cara yang cekap dan ringkas untuk lelaran melalui berbilang lelaran secara selari. Sintaksnya ialah:

for element_1, element_2 in zip(iterable_1, iterable_2):
    ...
for f, b in zip(foo, bar):
    print(f, b)

Penyelesaian Python 2

Dalam Python 2, zip() mengembalikan senarai tupel, yang boleh menjadi tidak cekap untuk set data yang besar. Untuk mengelak daripada mencipta pembolehubah sementara yang tidak diperlukan, pertimbangkan untuk menggunakan itertools.izip() untuk iterator sebaliknya:

import itertools
for f, b in itertools.izip(foo, bar):
    print(f, b)

Jika dikehendaki, itertools.izip_longest() boleh digunakan untuk melelakan sehingga kedua-dua iterables habis, mengisi yang tiada nilai dengan nilai isian yang ditentukan (atau Tiada secara lalai).

Kekunci Mata

  • Fungsi zip() boleh berulang melalui berbilang iterable secara serentak.
  • Dalam Python 3, zip() mengembalikan lelaran tupel.
  • Dalam Python 2 , zip() mengembalikan senarai tupel, manakala itertools.izip() dan itertools.izip_longest() menyediakan iterator untuk kecekapan.

Atas ialah kandungan terperinci Bagaimanakah Saya Mengulang Melalui Dua Senarai secara Selari dalam 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