可能性の重複を項目を引く:
pairwise traversal of a list or tuple効率的にその兄弟からリストに
私はこのリストを持っている:[(0, 'set'), (1, 'of'), (4, 'coloured'),(5, 'eels')]
私は効率的にアイテム+ 1を反復して達成したいと思います[0] - 項目[0]
1 - 0、4 - 1,5 - 4
私は現在持っている:
search_list = [(0, 'set'), (1, 'of'), (4, 'coloured')]
[search_list[i+1][0]-search_list[i][0] for i in range(0,len(search_list)-1)]
をしかし、私のコードは、私が希望ほど効率的ではありません。地図とラムダが結果を達成できるか?
私は効率的であることについてはよく分からない私は、モジュールをインポートしないようしたいと思います(しかし、当然のことながら、ラムダとマップがこれを達成することができないだろう場合)
より良い解決策をお聞かせしました。あなたはNumPy(具体的には 'numpy.diff()')を使わないと、あなたが持っているものよりも格段に優れたものは見つかりません。 –
Svenの言及がここでもうまくいくはずであるという質問の答えが答えただけで、タプルの要素にもアクセスする必要があります。 –
通常、lambaのマップはリスト内包よりも遅いです。また、Python 2を使用している場合は、 'range'ではなく 'xrange'を使用してください。リストの代わりにジェネレータが作成されます。 – jamylak