私は3 つのオブジェクトを持つ Python を持っていlist
ます: (例: タイトル)と別の(例: 名前)。tuples
string
date
string
例:
scientific_works = [
('SW 1', datetime.date(2000, 10, 15), 'auth 1'),
('SW 2', datetime.date(2000, 11, 3), 'auth 1'),
('SW 3', datetime.date(2000, 11, 4), 'auth 1'),
('SW 4', datetime.date(2000, 12, 1), 'auth 1'),
]
それから私はパターンを持っています:
からdate
までdate
、(少なくとも)日/週/月/年あたりのint
アイテムlist
int
例:
from datetime.date(2000, 11, 1)
until datetime.date(2000, 11, 30)
1 item per day
アルゴリズムに何をしてもらいたいか:
- そのリストとそのパターンが与えられた場合、フィルタリングされたアイテムはルールに一致しますか?
例の場合、このパターンは 2 つのアイテムに一致し、すべてが次のルールに一致します: 、ただし、日ごとのブロック1 item complete per day
がないため、アルゴリズムは を返します。an item
false
もう一つの例:
- Int_2 (日/週/月) あたり (少なくとも) Int_1 個のアイテム (作品) がありますか?
- 1 日あたり 1 つの作業は、指定された日付範囲の 1 日ブロックあたり少なくとも 1 つのアイテムを意味します。1 週間に 2 作品ということは、日付範囲の各週 (または 7 日間のブロック) に少なくとも 2 作品ということです。
from
もちろん、リストを反復処理して、一致するアイテムとuntil
パターンを見つけることができます。
しかし、それらを残りのルールと一致させて、それが正の一致か負の一致かを確認することについて、私は本当に混乱しています。
私の質問:
- アルゴリズムを構築し、ルールのリストとパターン (y 日または週または月または年ごとに x 項目) を提供し、それが一致するかどうかを確認するにはどうすればよいですか?
著者が報酬のロックを解除するかどうかに関係なく、特定のデータ (リスト) とルール (パターン) が与えられるアプリケーションの小さなコンポーネントに取り組んでいます。
ほとんどのアルゴリズムを含む udacity のいくつかの Python クラスを完了しましたが、実際にはこれを回避する方法を見つけることができません。
これまでのところ、私はこれを考えました:
- 指定された日付範囲でリスト アイテムをフィルター処理します。
- 範囲内の範囲ブロックを計算します: d1 から d2 までの 1 日 = 5 日 - d1 から d2 までの 1 週間 = 3 週間
int
上記で計算した範囲でループを作成します。- ループの各ステップで、週、月、年を日に変換します。
- 金額を開始日に追加し、アイテムが日付範囲に一致するかどうかを確認します。
- 日付範囲の次の開始に金額を追加して繰り返します。
ただし、これは機能せず、ブロックを日に変換することはまったく効率的ではないと思います。
ありがとうございました。