Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah `filter`, `map`, dan `reduce` Berubah daripada Python 2 kepada Python 3?
Dalam peralihan daripada Python 2 kepada 3, tingkah laku penapis, peta dan pengurangan mengalami perubahan yang ketara .
Pandangan dan Iterator Sebaliknya Senarai
Untuk menggalakkan kecekapan, peta dan penapis kini kembalikan iterator dan bukannya senarai. Sebagai contoh, dalam Python 2, filter(f, range(2, 25)) mengembalikan senarai nilai yang ditapis, manakala dalam Python 3, ia mengembalikan iterator. Penyelesaian mudah ialah menukar lelaran kepada senarai secara eksplisit menggunakan list(map(...)), tetapi penyelesaian yang lebih elegan selalunya melibatkan pemahaman senarai atau penstrukturan semula kod untuk menghapuskan keperluan untuk senarai.
Alih keluar mengurangkan
Python 3 mengalih keluar fungsi mengurangkan terbina dalam. Sebaliknya, ia mengesyorkan menggunakan functools.kurangkan jika perlu. Walau bagaimanapun, seperti yang dicatatkan oleh dokumentasi, gelung untuk eksplisit secara amnya lebih mudah dibaca dan sesuai untuk 99% kes.
Kesimpulan
Perubahan ini bertujuan untuk meningkatkan kecekapan dan reka bentuk fungsi terbina dalam Python 3. Dengan mengikuti panduan yang disediakan dalam dokumentasi, pembangun boleh menggunakan iterator dan pendekatan alternatif dengan berkesan untuk mencapai kefungsian yang serupa dengan kod Python 2 mereka dalam Python 3.
Atas ialah kandungan terperinci Bagaimanakah `filter`, `map`, dan `reduce` Berubah daripada Python 2 kepada Python 3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!