Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Melaksanakan Gelung For dengan Berkesan dalam Python Tanpa Menggunakan Pembolehubah Iterator Secara Eksplisit?
Mencipta For Gelung Tanpa Pembolehubah Iterator
Dalam Python, untuk gelung lazimnya berulang pada jujukan elemen menggunakan pembolehubah lelaran, seperti seperti contoh di bawah:
for i in range(some_number): # do something
Walau bagaimanapun, mungkin terdapat senario di mana anda hanya perlu melakukan tindakan beberapa kali tanpa memerlukan pembolehubah lelaran.
Penyelesaian Kemungkinan
Walaupun tidak mungkin untuk menghapuskan sepenuhnya pembolehubah lelaran, terdapat alternatif yang boleh mencapai hasil yang serupa:
1. Fungsi Lambda dengan xrange():
Anda boleh menggunakan fungsi lambda bersama-sama dengan fungsi xrange(), menghantar fungsi tanpa nama sebagai argumen kepada gelung() :
def loop(f, n): for i in xrange(n): f() loop(lambda: <insert expression here>, 5)
2. Menggunakan _ Pembolehubah:
Python membenarkan anda menggunakan pembolehubah khas _ untuk membuang nilai yang diberikan oleh gelung. Ambil perhatian bahawa _ hanyalah satu lagi pembolehubah dan bukan pemegang tempat untuk lelaran:
for _ in range(n): do_something()
Walaupun _ sering digunakan sebagai pengecam untuk pemegang tempat, ia adalah tidak disyorkan untuk digunakan dalam konteks ini kerana ia berpotensi memberikan nilai pulangan terakhir sesi Python interaktif kepada _.
3. Secara Eksplisit Mengabaikan Iterator:
Anda boleh mengabaikan pembolehubah iterator secara eksplisit dengan menggunakan sintaks berikut:
for i in range(n): pass # No action taken
Walau bagaimanapun, penyelesaian ini tidak cekap kerana ia menduduki slot tambahan dalam yang skop.
Kesimpulan
Walaupun tidak mungkin untuk mencipta gelung for tanpa pembolehubah lelaran dalam Python, alternatif di atas menyediakan kaedah untuk mencapai kesan yang sama apabila perlu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Gelung For dengan Berkesan dalam Python Tanpa Menggunakan Pembolehubah Iterator Secara Eksplisit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!