Dalam Python 2, fungsi menapis, memetakan dan mengurangkan menyediakan cara ringkas untuk memanipulasi data koleksi. Walau bagaimanapun, fungsi ini telah mengalami perubahan ketara dalam Python 3.
Daripada mengembalikan senarai, tapis dan peta kini mengembalikan iterator. Perubahan ini sejajar dengan falsafah reka bentuk Python 3 untuk menggalakkan kemalasan dan kecekapan. Iterators menjimatkan memori dan meningkatkan prestasi dengan menghasilkan elemen seperti yang diperlukan, dan bukannya membuat keseluruhan senarai terlebih dahulu.
Untuk mendapatkan senarai yang setara dengan hasil penapis atau peta, anda boleh menggunakan fungsi list() seperti berikut:
filtered_list = list(filter(f, range(2, 25))) mapped_list = list(map(cube, range(1, 11)))
Python 3 telah mengalih keluar fungsi mengurangkan. Ia telah diturunkan kepada modul functools sebagai functools.reduce(). Perubahan ini didorong oleh tanggapan salah mengenai penggunaan pengurangan. Dalam kebanyakan kes, gelung untuk eksplisit dianggap lebih mudah dibaca dan cekap.
Perhatikan bahawa functools.reduce() mempunyai tujuan yang sama seperti reduce dalam Python 2. Walau bagaimanapun, jika kod anda banyak bergantung pada reduce, semak semula kod tersebut. dan meneroka pendekatan alternatif (seperti eksplisit untuk gelung atau fungsi tertib lebih tinggi) adalah disyorkan.
Dengan menerima perubahan ini, anda boleh sesuaikan kod Python anda kepada versi terkini dan manfaatkan peningkatan dalam prestasi dan kebolehbacaannya.
Atas ialah kandungan terperinci Bagaimana `penapis`, `peta` dan `reduce` Python 3 telah Berubah, dan Bagaimana Saya Boleh Menyesuaikan Kod Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!