如何为列表中的每个邻居调用一个函数?

fra*_*ans 2 python list generator

给定一个列表[a, b, c, d]我想调用一个foo()返回数字并乘以返回值的函数:

result = foo(a, b) * foo(b, c) * foo(c, d)
Run Code Online (Sandbox Code Playgroud)

这个pythonic单线程是什么?我内心的C程序员会开始摆弄索引和循环,但我知道必须有更好的方法..

Net*_*ave 5

在这里你有一个功能的方法:

import operator
from functools import reduce #only python3
result = reduce(operator.mul, map(foo, l, l[1:]))
Run Code Online (Sandbox Code Playgroud)

它可以改善我们的一些itertools功能,imap以便在python2中获得更好的性能