数字のリストを持っています(基本例)[50,100,150,200,250]
指定されたインデックスから、指定した量から各数値をインクリメント(またはデクリメント)する必要があります。しかし、私の本当のリストは数字の数百万人が含まれており、この操作は異なるインデックスと異なるの増分/減分で繰り返し行われる[50, 100, 150, 300, 350]
特定のポイントからのリストのPythonインクリメント番号
:
from itertools import islice
l = [50,100,150,200,250]
start_increment_index = 3
l[start_increment_index:] = [e+100 for e in l[start_increment_index:]]
print (l)
l = [50,100,150,200,250]
l[start_increment_index:] = [e+100 for e in islice(l,start_increment_index,len(l))]
print (l)
両方の印刷:私は2つの方法でこれを実行することができました。 Pythonのリストを使ってこれを行うより速い方法がありますか?私はこれに対処するために自分自身のC/C++エクステンションを書くことを検討してきました
編集:これは一般的なPythonの役に立つモジュールでしょうか? Cで書かれた関数を持つと、パラメータ(python_list_object, increment_amount, start_index, end_index)
を取ることができますか?
Pythonに関する質問をする場合は、無関係な言語タグ(CやC++など)を追加しないでください。 CまたはC++モジュールを書く* * *の場合、(関連する)タグを使用してそれに関する質問をすることができます。 –
Pythonの配列構造を確認してください。数値の効率的な配列 – Vinny
最高のパフォーマンスが必要な場合は、C/C++プログラムを記述する必要があります(アルゴリズムは簡単に書くことができ、多少スレッド最適化可能です)。そうでなければ、あなたの目標がこの1つの仕事を終わらせることであるならば、このスクリプトにとどまり、答えを待つだけです。一般的に言えば、数(数百万または数兆など)がどれだけ大きいか、またこのスクリプト/プログラムを使用すると思われる回数に依存します。 –