filter
, map
và reduce
hoạt động hoàn hảo trong Python 2. Dưới đây là một ví dụ:
>>> def f(x):
return x % 2 != 0 and x % 3 != 0
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]
>>> def cube(x):
return x*x*x
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> def add(x,y):
return x+y
>>> reduce(add, range(1, 11))
55
Nhưng trong Python 3, tôi nhận được các kết quả đầu ra sau:
>>> filter(f, range(2, 25))
<filter object at 0x0000000002C14908>
>>> map(cube, range(1, 11))
<map object at 0x0000000002C82B70>
>>> reduce(add, range(1, 11))
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
reduce(add, range(1, 11))
NameError: name 'reduce' is not defined
Tôi sẽ đánh giá cao nếu ai đó có thể giải thích cho tôi tại sao điều này là.
Ảnh chụp màn hình mã để rõ hơn: