E是a,b,c和d的组合。 D是最终结果。 所以e的结果应该与d相同。但事实并非如此。我做错了什么?
结果d = [24,42,30,42,48,36]
e = [42,42,48,36]
的结果numbers = [2,4,7,2,5,3,7,8,1,6]
def mapping():
a = list(filter(lambda x : x > 3, numbers))
print(a)
b = list(map(lambda x : x * 3, a))
print(b)
c = list(filter(lambda x : x > 10, b))
print(c)
d = list(map(lambda x : x * 2, c))
print(d)
e = list(filter(lambda x : x > 3, map(lambda x : x * 3, filter(lambda x : x > 10, map(lambda x : x * 2, numbers)))))
print(e)
mapping()
答案 0 :(得分:2)
问题在于,当您计算e
时,您会按照计算d
时的相反顺序执行操作。尝试像这样计算e
:
e = list(map(lambda x : x * 2,
filter(lambda x : x > 10,
map(lambda x : x * 3,
filter(lambda x : x > 3, numbers)))))