Dalam Python, pemahaman senarai ialah alat yang berkuasa untuk mencipta senarai. Walau bagaimanapun, bahasa Python juga memperkenalkan satu lagi ciri serupa yang dikenali sebagai ungkapan penjana.
Ekspresi penjana berbeza daripada pemahaman senarai kerana ia tidak menggunakan kurungan segi empat sama ([]). Sebaliknya, mereka menggunakan kurungan (), menghasilkan nilai satu demi satu. Ciri ini menjadikannya lebih cekap ingatan daripada pemahaman senarai, kerana ia menjana nilai dengan pantas tanpa mencipta senarai lengkap dalam ingatan.
Dalam contoh yang disediakan, str(_) untuk _ dalam xrange(10) ialah ungkapan penjana yang menghasilkan urutan rentetan yang mewakili nombor dari 0 hingga 9. Melepasi ungkapan penjana ini untuk bergabung mempunyai kesan yang sama seperti menggunakan pemahaman senarai, tetapi tanpa memerlukan petak kurungan.
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa tidak semua fungsi boleh menerima ungkapan penjana. Fungsi yang memerlukan senarai lengkap, seperti isihan atau len, memerlukan senarai eksplisit.
Kecekapan dan Prestasi Memori
Secara amnya, ungkapan penjana adalah lebih ingatan- cekap daripada pemahaman senarai. Walau bagaimanapun, dalam kes gabungan, menggunakan pemahaman senarai adalah lebih pantas dan lebih cekap ingatan. Ini kerana join perlu membuat dua hantaran ke atas data dan mempunyai senarai sebenar membolehkannya mula berfungsi dengan serta-merta.
Kelebihan prestasi pemahaman senarai berbanding ungkapan penjana dalam kes ini digambarkan oleh timeit Python berikut penanda aras:
>>> timeit ''.join(str(n) for n in xrange(1000)) 1000 loops, best of 3: 335 usec per loop >>> timeit ''.join([str(n) for n in xrange(1000)]) 1000 loops, best of 3: 288 usec per loop
Oleh itu, sementara ungkapan penjana menawarkan kelebihan kecekapan ingatan dalam banyak kes, adalah penting untuk mempertimbangkan ciri prestasi khusus bagi fungsi yang digunakan semasa membuat pilihan antara pemahaman senarai dan ungkapan penjana.
Atas ialah kandungan terperinci Senaraikan Pemahaman lwn. Ungkapan Penjana: Bilakah Anda Harus Menggunakan Tanda Kurung Daripada Kurungan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!