Memahami Evolusi Alat Berfungsi dalam Python: tapis, petakan dan kurangkan
Dalam Python 3, gelagat penapis, peta, dan mengurangkan fungsi telah mengalami perubahan ketara berbanding rakan sejawat mereka dalam Python 2. Ini boleh menyebabkan kekeliruan bagi pengguna yang terbiasa dengan sintaks sebelumnya dan tingkah laku.
Perubahan untuk menapis dan memetakan
Dalam Python 3, kedua-dua penapis dan peta mengembalikan iterator dan bukannya senarai. Ini adalah hasil daripada peralihan daripada menghasilkan struktur data konkrit kepada menyediakan pandangan yang lebih cekap dan cekap ingatan. Jika anda perlu mendapatkan senarai sebagai hasilnya, anda boleh menggunakan fungsi list() untuk menukar iterator, mis. senarai(penapis(f, julat(2, 25))). Penyelesaian yang lebih baik, bagaimanapun, adalah untuk mempertimbangkan pemahaman senarai atau mengolah semula kod untuk menghapuskan keperluan untuk senarai.
Alih keluar pengurangan
Python 3 telah mengalih keluar binaan -dalam mengurangkan fungsi. Sebaliknya, pengguna harus menggunakan fungsi functools.reduce jika diperlukan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa dalam kebanyakan kes, gelung for eksplisit menyediakan alternatif yang lebih mudah dibaca dan cekap.
Pengubahsuaian Kod Contoh
Untuk menyesuaikan Python yang disediakan 2 kepada Python 3, perubahan berikut ialah perlu:
# Python 2 filter(f, range(2, 25)) map(cube, range(1, 11)) reduce(add, range(1, 11)) # Python 3 list(filter(f, range(2, 25))) list(map(cube, range(1, 11))) functools.reduce(add, range(1, 11))
Kesimpulan
Dengan memahami perubahan ini dalam Python 3, pembangun boleh mengelakkan kejutan dan menulis kod yang menggunakan alat berfungsi yang tersedia dalam bahasa dengan berkesan.
Atas ialah kandungan terperinci Bagaimanakah Fungsi `penapis`, `peta` dan `mengurangkan` Python telah Berubah dalam Python 3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!