私は辞書の関連リストであるitems
とbookings
を持っています。私はどの品目が最も少ない予約をしているかを判断する必要があります。リスト内のオブジェクトの出現数を最も少なく見つける方法
実際の例では、データベース内にあるが、運動しのために、このデータを考慮してください。
from datetime import datetime
item1 = {'foo1'}
item2 = {'foo2'}
items = [item1, item2]
booking1 = {'Start':datetime(2012,1,1), 'Item':'foo1'}
booking2 = {'Start':datetime(2012,1,2), 'Item':'foo1'}
booking3 = {'Start':datetime(2012,1,1), 'Item':'foo2'}
bookings = [booking1, booking2, booking3]
どのように効率的に最も少ないの予約を持っている項目を決定することができますか?どんな助けでも大歓迎です!
あなたがcollections.Counter
(Pythonのマルチセット)で、ではないが、特に効率的に、簡単にこれを行うことができます
が、それはSQLですデータベース?その場合は、select count distinctクエリでフィルタリングを実行するほうがはるかに高速になります。すべてをPythonにプルする必要がある場合は、リスト全体を反復処理する必要があるため、SQLからPythonに必要以上のデータを選択するという非効率性に加えて、O(n)になります。 – rob05c
NoSQLですが、「別個の」同等のものがあります。私が照会すべき明確な価値についてもっと説明できますか?申し訳ありませんが、私はまだあなたに従っていません。 – MFB
A)データベースに入っている場合は、データベースで作業をしてください...データベースは、設定に基づいた問題を非常によく扱っています.SQLに簡単に変換できるデータについて質問するかもしれない質問がたくさんあります。 B)それはあなたのデータのひどいデータ構造です。予約には複数のアイテムがありますか?クラスを予約しないのはなぜですか?これがデータベースデータの場合は、ORMを使用していませんか? – gfortune