Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah `penapis`, `peta`, dan `kurangkan` Berubah dalam Python 3?

Bagaimanakah `penapis`, `peta`, dan `kurangkan` Berubah dalam Python 3?

Susan Sarandon
Lepaskan: 2024-11-27 15:38:10
asal
341 orang telah melayarinya

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

Python 3: Variasi dalam Pelaksanaan Penapis, Peta dan Kurangkan

Dalam Python 2, penapis, peta dan pengurangan berkelakuan berbeza daripada rakan sejawat Python 3 mereka. Ini berpunca daripada beberapa perubahan penting yang dilaksanakan dalam Python 3:

Paparan dan Iterator Atas Senarai:

  • map() dan penapis() kini mengembalikan iterator dan bukannya senarai. Untuk mendapatkan senarai, tukarkannya secara eksplisit menggunakan list().

Alih keluar reduce():

  • reduce() telah dialih keluar daripada teras Python memihak kepada fungsi functools.reduce(). Walau bagaimanapun, gelung untuk eksplisit biasanya lebih mudah dibaca dan diutamakan.

Contoh Penggunaan:

Coretan kod Python 2 boleh dikemas kini untuk Python 3 seperti berikut :

def f(x):
    return x % 2 != 0 and x % 3 != 0

# **Filter:** Use list() to obtain a list of filtered values
filtered_list = list(filter(f, range(2, 25)))

# **Map:** Similarly, use list() to convert the iterator to a list
cubed_list = list(map(lambda x: x ** 3, range(1, 11)))

# **Reduce:** Use functools.reduce() or an explicit for loop
from functools import reduce
add_result = reduce(lambda x, y: x + y, range(1, 11))

print(filtered_list)  # Output: [5, 7, 11, 13, 17, 19, 23]
print(cubed_list)   # Output: [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
print(add_result)   # Output: 55
Salin selepas log masuk

Tambahan Sumber:

  • [Python 3.0 Changes](https://docs.python.org/3/whatsnew/3.0.html)
  • [map() and Views ](https://wiki.python.org/moin/Mendapatkan peta() untuk mengembalikan senarai dalam Python 3.x)

Atas ialah kandungan terperinci Bagaimanakah `penapis`, `peta`, dan `kurangkan` Berubah dalam Python 3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan