1

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

我已经看遍了,似乎找不到答案。

任何帮助将不胜感激,

谢谢,戴夫

编辑:我正在使用 Python。

4

1 回答 1

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))
于 2012-07-03T23:17:54.460 回答