タグ

setに関するpiro_sukeのブックマーク (2)

  • 配列をSet::で操作する - 趣味の延長線

    Modelから取得したデータ配列を更に検索&抽出する必要が生じましたが、array_searchなどで対応できる範疇を超えていました。 これは独自に関数作らないとダメかなあ、と思いつつtwitterで arrayをSQLのようにサーチしたい。 WHERE public_flag=true AND created > 2010-01-01 みたいな・・・ とつぶやいたら、kaz_29さんからReplyで、Setライブラリの存在を教えていただきました。 http://book.cakephp.org/ja/view/640/Set どうやら、Set::extractの組み合わせで目的達成出来そうです。 こんなものがあったとは、CakePHP奥が深い・・・ SetのTOPページで、使い方や各メソッドの機能が一覧できないので、ざっと自分用リファレンス作ってみました。 追加 2/2 checkに補記

    配列をSet::で操作する - 趣味の延長線
  • Python のセットがすごい

    ~$ python -m timeit -n 1000 "[x for x in range(1000) if x in range(500, 1500)]" 1000 loops, best of 3: 28.2 msec per loop ~$ python -m timeit -n 1000 "set(range(1000)).intersection(range(500, 1500))" 1000 loops, best of 3: 120 usec per loop リスト内包が約235倍時間かかりますね。リストをセットにするのも時間かからないので、合併や、交差は絶対 set() を使ったほうがいいですね。 Update range(500, 1500) を 1000回くらいよばれてしまっているので、一回呼び出すようにすると、 28.2msec が 18.2msec になった。ま

  • 1