我試圖寫一個函數來識別日期組,並測量組的大小。日期比較/連續日期分組
該函數將採用按日期順序排序的元素列表(元素是具有日期的CSV文件中的單獨行)。該列表可以是0到n個元素。我希望在輸入時填寫列表,並添加日期組的大小。
例如,列表
Bill 01/01/2011
Bill 02/01/2011
Bill 03/01/2011
Bill 05/01/2011
Bill 07/01/2011
應該輸出(理想地打印到文件)作爲
Bill 01/01/2011 3
Bill 02/01/2011 3
Bill 03/01/2011 3
Bill 05/01/2011 1
Bill 07/01/2011 1.
我有一個函數已經調用isBeside(string1, string2)
返回兩者之間的增量。
我嘗試到目前爲止,這是(一個反覆的一塌糊塗,我肯定Python可以比這更優雅)
注coll[i][1]
包含CSV行的日期元素。
def printSet(coll):
setSize = len(coll)
if setSize == 0:
#dont need to do anything
elif setSize == 1:
for i in coll:
print i, 1
elif setSize > 1:
printBuffer = [] ##new buffer list which will hold sequential dates,
until a non-sequential one is found
printBuffer.append(coll[0]) #add the first item
print 'Adding ' + str(coll[0])
for i in range(0, len(coll)-1):
print 'Comparing ', coll[i][1], coll[i+1][1], isBeside(coll[i][1], coll[i+1][1])
if isBeside(coll[i][1], coll[i+1][1]) == 1:
printBuffer.append(coll[i+1])
print 'Adding ' + str(coll[i+1])
else:
for j in printBuffer:
print j, len(printBuffer)
printBuffer = []
printBuffer.append(coll[i])
return
這是一個數據庫非常擅長的東西。你有沒有考慮過使用數據庫呢? – gfortune 2012-04-12 16:30:13
是的。我的問題是我有很多人和CSV文件中的其他變量。程序上似乎是我前進的道路。我最終也需要檢查週末/工作日,所以我不認爲數據庫會阻止,儘管將會被證明是不正確的。我覺得我會用這種方法來關閉,不想把它扔掉:) – Pythonn00b 2012-04-12 16:40:28
日期是月/日/年格式還是日/月/年? – 2012-04-12 16:54:19