所以我有一个列表,比如说,L = [0,1,2,3];我想将一个函数(带有两个参数)应用于子列表 [0,1]、[1,2]、[2,3] 的每个值,然后生成另一个新值列表。 IE。 [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))
关于python - 列表子集的函数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11302477/