私はより良い、より迅速な方法をいくつかのリストを中心に探しています。今、私は以下の持っている:リストのセンタリングの高速化
効果にm
はに対して中央に配置され、そこから別のリスト(
sm
)と値のリスト、反対中央に乱数の範囲を含むリスト(
m
を)(作成
import random
m = range(2000)
sm = sorted(random.sample(range(100000), 16000))
si = random.sample(range(16005), 16000)
# Centered array.
smm = []
print sm
print si
for i in m:
if i in sm:
smm.append(si[sm.index(i)])
else:
smm.append(None)
print m
print smm
si
)を追加します。
このサンプルはかなり速く実行されますが、パフォーマンスが大幅に向上した大きなタスクを実行すると、パフォーマンスが低下して停止します。
実際に何を達成したいですか? – ZdaR
'sm:' 'sm 'のiがリストの場合:O(n)検索。まずリストをソートするので、集合を作成するか、二等分を使用します。それはスピードアップします。 –
こんにちは、 私は本質的にデータセンタリングの仕事だと思います。ここでは、同じ長さ(この場合は '' m''の長さ)に '' 'データが存在しない場合はヌル値が代入されます。 – KeironO