整数を使って単純な「交差」操作を大量に実行しようとしています。残念ながら、セットアップで numpy/scipy を利用できず、それを変更することはできません。
スタックオーバーフローで、Python の set操作がデータを適切に並べ替えていることに気付きました。これは、ケースのロードを高速化するだけでなく、私の場合、実際にデータも並べ替えたいので、素晴らしいボーナスになるでしょう。
いつもうまくいくとは限らないのではないかと心配しているので、テストに行きました:
import random
one = range(100)
two = range(50)
three = range(50)
for i in xrange(1000000):
# shuffle the lists
random.shuffle(one)
random.shuffle(two)
# do set operation
res = [v for v in set(one) & set(two)]
if res != three:
print res
その結果、すべてのサンプルがソートされます (間違ったケースは印刷されません)。
これは非常に説得力がありますが、集合交差を使用するときに整数が完全にソートされない場合があるかどうかを知りたいですか?