@Kryptonit

AttributeError: 'int' object has no attribute 'price' как исправить?

Возникла проблема. Я так понял не видится контекст вызова. Мне нужно чтобы код сортировал по возрастанию массив объектов и хочу именно с контекстом self реализовать. суть программы - даётся файл из строк нужно отсортировать по возрастанию, я реализую через объект, каждая строка разбивается на 3 части и добавляется в массив объектов, затем сортируется по атрибуту price.
import operator
file = open('26.txt', 'r')
A=[0, 0, '']*401
lines = file.readlines()
class elem():
    def __init__(self, a, b, c):
        self.volume = b
        self.price = a
        self.letter = c
    
for i in range(1, len(lines)):
    a, b, c = lines[i].split(' ')
    A[i] = elem(a, b, c)
print(A[2].price)
A.sort(key = operator.attrgetter('price'))
print(A[2].price)
  • Вопрос задан
  • 200 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Команда
A=[0, 0, '']*401
даст список вида [0, 0, '', 0, 0, '', .........]
Т.е. число элементов списке будет 401 * 3.
Зачем вообще выделять список заранее?
Сделай его пустым A = [] и делай A.append(....) для каждой прочитанной строки.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Andy_U
У вас длина списка А превышает число прочитанных строк. Вот в хвосте и остаются не перезаписанные нули и пустые строки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы