MapReduce的设计灵感来自于函数式编程,这里不打算提MapReduce,就拿python中的map()函数来学习一下。 文档中的介绍在这里: map(function, iterable, ...) Apply function to every item of iterable and return a list of the results. If additional iterable arguments are passed, function must take that many ar...
1. map(function, iterable) => [function(i) for i in iterable] 2. map(function, iterable, ...) => map(function, *iterable_list) => [function(*i) for i in iterable_list] 觉得应该类似这种实现的,不知道还能不能更精简
1. map(function, iterable) => [function(i) for i in iterable] 2. map(function, iterable, ...) => map(function, *iterable_list) => [function(*i) for i in iterable_list] 觉得应该类似这种实现的,不知道还能不能更精简
list(map(abc, list1))
=> [function(i) for i in iterable]
2. map(function, iterable, ...) => map(function, *iterable_list)
=> [function(*i) for i in iterable_list]
觉得应该类似这种实现的,不知道还能不能更精简
=> [function(i) for i in iterable]
2. map(function, iterable, ...) => map(function, *iterable_list)
=> [function(*i) for i in iterable_list]
觉得应该类似这种实现的,不知道还能不能更精简
引用来自“凤子风姿”的评论
菜鸟请问老师,下面这个例子,输出的结果怎么不是[111,122,133]呢?def add100(x):
return x+100
list1=[11,22,33]
#map(add100,list1)
[add100(x) for x in list1]
print add100(x)
def add100(x):
return x+100
list1=[11,22,33]
#map(add100,list1)
[add100(x) for x in list1]
print add100(x)
引用来自“songzhenya”的评论
[abc(a,b,c) for a,b,c in (list1,list2,list3)]引用来自“songzhenya”的评论
[abc(a,b,c) for a,b,c in (list1,list2,list3)][abc(a,b,c) for a,b,c in zip(list1,list2,list3)]
#[abc(a,b,c) for a in list1 for b in list2 for c in list3]
其实这个情况用list comprehension也可以表述,但应该是这么写:
[abc(list1[i],list2[i],list3[i]) for i in xrange(3)]
所以我觉得不是list comprehension和map有什么本质不同。你之前提到的stackoverflow上的观点应该是对的。
引用来自“Yoker”的评论
只用了推导的方式,其他情况未尝试,不知道在什么场景下用到。