Появляются лишние элементы в массиве после выполнения цикла.

weamagic

Пользователь
Пользователь
Июл 11, 2020
141
13
18
Python 3.8
Win 7
День добрый. После выполнения следующего кода в выходном массиве появляется от 2 до 3 лишних элементов. Кто-нибудь может найти ошибку?
Python:
        mis = []
        sint = []
        i =0
        clast = []
        x = name_var.data_to_sint[self.axix_x.currentText()].tolist()#срез с использованием панд по столбцу, выбранному в выпадающем списке.
        dtp = name_var.data_to_sint[self.axix_y.currentText()].tolist()
        while i < len(x):
            j = 0
            sint.clear()
            while j < self.tbl_layer.rowCount():#количество строк в таблице соответствует количеству слоев, описываемых параметрами, указанными в столбцах.
                lay = l[j]
                sint.append(self.calc_zal(lay[0], lay[1], lay[2], x[i]))#тут передаются в формулу значения коэфициентов.
                j += 1
            k = 0
            mis.clear()
            while k < len(sint):
                mis.append(float(dtp[i]) - sint[k])#вычисляется разница между замеренным значением и расчетным
                k += 1
            for q, g in enumerate(mis):#присваивается номер слоя, с минимальной ошибкой
                if g == min(mis, key=abs):
                    clast.append(q)
            i += 1
        print(clast)
Пока поставил заглушку, но всё-таки интересно, что приводит к появлению бага. Теоретически, длина clast должна равняться длине х, а получается + 2-3
 

Форум IT Специалистов