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