1

たとえば、L = [0,1,2,3]; というリストがあります。サブリスト [0,1]、[1,2]、[2,3] のそれぞれの値に (2 つの引数を持つ) 関数を適用し、新しい値の別のリストを作成したいと思います。すなわち [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、任意の iterable の場合:

a, b = tee(L)
it = imap(f, a, islice(b, 1, None))
于 2012-07-03T23:17:54.460 に答える