列表子集的功能列表

时间:2012-07-02 23:21:28

标签: python list function

所以我有一个清单,比如,L = [0,1,2,3];我想将一个函数(带有两个参数)应用于子列表[0,1],[1,2],[2,3]的每个值,然后生成另一个新值列表。 即[f(0,1),f(1,2),f(2,3)]

我看了一遍,似乎无法找到答案。

非常感谢任何帮助,

谢谢, 戴夫

编辑:我正在使用Python。

1 个答案:

答案 0 :(得分:2)

result = [f(*args) for args in zip(L, L[1:])]

或者:

result = map(f, L[:-1], L[1:])

使用itertools函数的懒惰版本,可根据需要生成结果:

it = starmap(f, izip(L, islice(L, 1, None)))

或者:

it = imap(f, L, islice(L, 1, None))

或者如果L是任意的可迭代:

a, b = tee(L)
it = imap(f, a, islice(b, 1, None))