Для общего понимания что делает эта функция. Имеется таблица sql, которая была предварительно препарирована для разложения по полям и ее значения были помещены в соответсвующие списки с префиксом fiscal_ :
date | time | ndoc | article | count
————+——-+————+———+——-
01.01.2012 | 13:10 | 0000000001 | 2832830 | 1
05.02.2012 | 09:01 | 0000000003 | 2832830 | 2
10.04.2012 | 10:38 | 0000000005 | 2832830 | 1
13.05.2012 | 21:20 | 0000000006 | 2832830 | 1
19.05.2012 | 16:05 | 0000000007 | 2832830 | 2
Суть функции (как вы наверное поняли это таблица фискальных чеков), составить список с помесячным отчетом по продажам, т. е проверить каждую строку и если месяц совпадает с предидущем значением то строка пропускается, но количество из строки плюсуется к придидущему.
На уровне цикла функция прекрасно работает, но как только обработка цикла прекращается в списке tab оказывает охинеия. Помогите найти ошибку. Вывод print внизу.
def getMonthSale(self,): tab = [] row = [] turn = 0 b = '' if not self.monSale_f: for i in range(5): row.append('') for i in range(self.rc): tab.append('') #for a in range(4): #tab[i].append('') for i in range(self.rc): if self.fiscal_date[i][3:5] == b: tab[i-1][2] = float(tab[i-2][2]) + float(self.fiscal_count[i]) else: row[2] = self.fiscal_count[i] row[0] = self.fiscal_date[i][3:5] b = row[0] row[1] = self.fiscal_date[i][6:10] row[3] = '0.00' row[4] = '0.00' tab.insert(i, row) print row print '--------------------------------------------------' print tab self.monSale_f = 1
['01', '2012', 1.0, '0.00', '0.00'] -------------------------------------------------- ['02', '2012', 2.0, '0.00', '0.00'] -------------------------------------------------- ['04', '2012', 1.0, '0.00', '0.00'] -------------------------------------------------- ['05', '2012', 1.0, '0.00', '0.00'] -------------------------------------------------- ['05', '2012', 3.0, '0.00', '0.00'] -------------------------------------------------- [['05', '2012', 3.0, '0.00', '0.00'], ['05', '2012', 3.0, '0.00', '0.00'], ['05', '2012', 3.0, '0.00', '0.00'], ['05', '2012', 3.0, '0.00', '0.00'], ['05', '2012', 3.0, '0.00', '0.00'], '', '', '', '', '']