私は同じ種類のオブジェクトのリストを持っています。 main_object_listが言う、持っているときに、このアプローチは、動作しますが100.000、オブジェクトがPythonのリストにあるかどうかを素早くチェックする方法
for o in main_object_list:
obj_list = o.get_this_object_list()
for i in obj_list:
if i in main_object_list:
//do something with i
:
各オブジェクトは、オブジェクトの独自のリスト(通常は5〜10項目)私が行うために使用何
だったがあります要素、 それはひどく遅くなります。
私の回避策は、このされています:
for o in main_object_list:
o.flag = True
for o in main_object_list:
obj_list = o.get_this_object_list()
for i in obj_list:
if i.flag:
//do something with i
それは(22分からわずか17として秒に)速い数桁を行く が、私は別の、より良い、アプローチがあるかもしれないと思います。さらに、この例は、各オブジェクトがフラグプロパティを持っているだけで動作しますが、そうではありません。 他の関数で設定/設定解除されている可能性が高いフラグを使用することは控え目です(この関数が同じ フラグ・メカニズムを使用して親関数、これはすべてのオブジェクトのフラグを設定する混乱のすべてのものまで、でしょう)
オブジェクトが main_object_listにあるかすぐにチェックするために、より正確なpythonesqueの方法はありますか?
より良いアプローチすべてのオブジェクトが一意でハッシュ可能な場合にセットを使用することです –
main_object_liの各オブジェクトを呼び出す必要があります多くの時間と正しい順序で、あなたはありませんか? main_object_listのかなりのペアごとに何かする必要がありますか?10.000.000.000倍近くでしょうか?どのように速くすることができますか? – Arpegius
Python 2.6以降の['set'](http://docs.python.org/library/stdtypes.html#set)、[' sets.Set'](http://docs.python.org/library /sets.html)をPython 2.3に移植しました。 – ephemient