2017-05-27 71 views
0

我有以下問題我正在解決這需要我存儲大量的參數,我會爲一般的目的認爲它是一個日曆應用程序。我正在解決PYTHON這個問題,因爲它是我唯一有限的能力。我正在學習這門語言,到目前爲止,我還不是專家或熟練的用戶。尋找最佳的數據存儲類型PYTHON

我有一堂課是我日曆的中流砥柱。

class DayOfLife(object): 

def __init__(self, date, index, stary, mlady, muze_slouzit_mladeho = [], muze_slouzit_stareho = []): 

     self.date = date 
     self.index = index 
     self.muze_slouzit_mladeho = muze_slouzit_mladeho 
     self.muze_slouzit_stareho = muze_slouzit_stareho 
     self.stary = stary 
     self.mlady = mlady 

muze_slouzit_mladeho_stareho是誰,可用於工作成爲可能的人的名單。

索引是描述每天「煩人」的參數。週一更好然後週六,週日等

施塔mlady是當天選定的人一個明確的選擇。 (那些我期望我的程序生成)

我創建了一個列表天(DayOfLife對象),並以「2017-01-01」格式分配每個日期。

我然後填充天的名單有我需要的只是施塔和mlady的所有值(那些我希望我的程序生成)

在現在,問題。 我不知道如果我的做法是「好」的,如果我要像執行的東西:

1:排序每天通過提供人的總金額列表(數muze_slouzit_mladeho,因爲我很想先填充那些最難的日子,同時我需要輕鬆快速地訪問那些日子前後的那一天。

所以,按照鍵的數量排序列表那些列表屬性(muze_slouzit_mladeho),然後從可能性e鍵,並且在和之後在之前在之前以某種方式刪除或標記爲相同的鍵,因爲關鍵字不能在接下來的兩天中。 (人員不能連續兩天參加)。此刻,我覺得如果我排序列表,我將不得不遍歷整個列表以找到前一天的日期並更新其關鍵值。感覺最好能夠寫出像

day[i-1] remove key 
day[i+1] remove key 

我不確定我會怎麼做。我目前不知道如何使用數據庫。我認爲我的數據類型將不得不演變成其他的東西,我可能需要添加另一個列表來保留由於「連續兩天規則」而被刪除的數十個人,而不是將其刪除。

我想我會想到的東西,但我希望它是非常低效的。所以我想聽聽一些關於如何解決這個問題的意見。我必須學習SQLite嗎?它會有幫助嗎?我可以以某種方式使DayOfLife對象的數組可索引?或者我可以通過它們的屬性訪問這些對象嗎?我不確定這是否可行。我可能真的很笨。

回答

0

DayOfLife objectamount of available people,e.g

my_dict = {'Date':2017-01-01, 'DayOfLife':<DayOfLife object>, 'amount':10} 

排序my_diict使用key = my_dict['amount']list object與創建日期爲鍵和值dict

訪問前一天/後:

E.g. current object Date = 2017-01-01 
Day before = 2017-01-01 - 1 = 2016-12-31; my_dict[ 2016-12-31] 
Day after= 2017-01-01 + 1 = 2017-01-02; my_dict[ 2017-01-02] 

你肯定是要永久保存您的數據,所以你必須決定如何? 現在開始使用csv module