Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Fungsi `penapis`, `peta` dan `mengurangkan` Python telah Berubah dalam Python 3?

Bagaimanakah Fungsi `penapis`, `peta` dan `mengurangkan` Python telah Berubah dalam Python 3?

Barbara Streisand
Barbara Streisandasal
2024-11-27 14:41:17375semak imbas

How Have Python's `filter`, `map`, and `reduce` Functions Changed in Python 3?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn