リスト内のすべてのタプルにインデックスを追加する(新しいリストを作成することによって)?私が試したことの例を挙げます。私は操作をより速くしたいと思いますし、何か提案がありがたいです。インデックスを効率的に追加する
のは、私が
L = [(1463270, 0.681), (1432058, 0.678), (537044, 0.677), (252225, 0.677), (1222737, 0.676)]
を有するある種の繰り返しで午前と仮定しましょうここでLは、5つのタプルが含まれていますが、私は実際には数百つのリスト内のタプルの何千もので働いています。
は私が最終スコアを計算する際にインデックスを必要とする
L = [(1463270, 0.681, 1), (1432058, 0.678, 2), (537044, 0.677, 3), (252225, 0.677, 4), (1222737, 0.676, 5)]
になっL内のすべてのタプルにインデックスを追加すると、私はこの試みた:
iL = []
for i in range(1,top+1): ## top = 5 in my example
iL.append(L[i-1] + (i,))
をしかし、私は実際に使用しないようにしたいですこのようなループは、top = 500,000で、300万回の反復を持ちます。おそらくマップを使用して私の質問を解決する方法はありますか?
'enumerate'の第2引数として始点を指定することができます。列挙する'((x、y、i)i、(x、y) ')'。 – chepner
@chepner Nice!それ以前に見たことはありませんでした:) – wildwilhelm
ありがとう。私のコードをもっと効率的にする方法があるかどうか教えてください。 idの範囲内(212864,2138098): L_src = ...一部の関数呼び出し L_trg = ...一部の関数呼び出し iL_src = [(x、y、i + 1)for i、(x、y) (x、y、i)は、列挙する(L_trg)内のi、(x、y、i) (λ1:l [0]
関連する問題