Apabila berurusan dengan iterator dan iterables, memahami sifat penggunaannya adalah penting. Dalam Python, iterator hanya boleh digunakan sekali. Ini bermakna sebaik sahaja anda mengulangi lelaran, ia habis dan tidak boleh digunakan lagi.
Pertimbangkan kod berikut:
def test(data): for row in data: print("first loop") for row in data: print("second loop")
Jika data ialah lelaran bukan kosong (mis., a senarai iterator atau ungkapan penjana), kod akan mencetak "gelung pertama" beberapa kali, tetapi "gelung kedua" tidak akan dicetak. Ini kerana lelaran telah digunakan semasa gelung pertama.
Isu yang sama timbul dengan bentuk lelaran lain, seperti pemahaman senarai/set/dikt, panggilan ke senarai(), jumlah(), atau kurangkan (), dan seterusnya.
Walau bagaimanapun, jika data adalah satu lagi boleh lelar seperti senarai atau julat (yang merupakan jujukan), kedua-dua gelung akan dilaksanakan seperti yang dijangkakan, mencetak "gelung pertama" dan "gelung kedua" untuk setiap elemen. Ini kerana iterable ini boleh diulang beberapa kali.
Untuk mengulangi, apabila menggunakan iterator, adalah penting untuk mengingati sifat penggunaan tunggal mereka. Untuk menggunakan semula data, pertimbangkan untuk menyimpan elemen ke senarai atau menggunakan itertools.tee() untuk mencipta iterator bebas.
Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Mengulangi Ulangan Dua Kali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!