所以我有一个清单,比如,L = [0,1,2,3];我想将一个函数(带有两个参数)应用于子列表[0,1],[1,2],[2,3]的每个值,然后生成另一个新值列表。 即[f(0,1),f(1,2),f(2,3)]
我看了一遍,似乎无法找到答案。
非常感谢任何帮助,
谢谢, 戴夫
编辑:我正在使用Python。
答案 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))