Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2020, 22:40   #1
VeryStupidPerson
Пользователь
 
Аватар для VeryStupidPerson
 
Регистрация: 20.07.2020
Сообщений: 69
По умолчанию ошибка "AttributeError: 'tuple' object has no attribute 'append'"

Объясните, пожалуйста, как исправить ошибку.
Необходимо заполнить двумерный список переменными по принципу:
paraleli = ((А5, Б5, В5),
(А6, Б6, В6, Г6),
(А7),
(А8, Б8),
(),
(),
())
Ну и т.д.
Информация по количеству классов в каждой параллели хранится в кортеже classes. (например, так: (3, 5, 6, 2, 4, 2, 8)), где числа обозначают количество классов в параллелях.
Код:
global paraleli
paraleli = ((),
            (),
            (),
            (),
            (),
            (),
            ())
def initparaleli(classes):
    global paraleli
    global alfabet
    a = 5
    for i in paraleli:
        for b in range(classes[a - 5]):
            i.append(globals()[alfabet(b)])
        a += 1
    print(paraleli)
В результате выполнения функции возникает ошибка:
AttributeError: 'tuple' object has no attribute 'append'
---------------------------------------------------
Нич-чего не понимаю!
Или что-то случилось, или… одно из двух!
VeryStupidPerson вне форума Ответить с цитированием
Старый 04.10.2020, 23:32   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

tuple - это кортеж. Это неизменяемый объект.
Вы определили объект как tuple, поскольку использовали круглые скобки.
list - это список. Это изменяемый объект.
Для задания списка используются квадратные скобки.
Метод append() - это для списка.
В вашем случае можно сделать, например, так:
Код:
a = (1, 2, 3)  # a is tuple
b = 'z2'
l = list(a) 
l.append(b)
l = tuple(l)   # (1, 2, 3, 'z2')
PS: Вам выбирать как поступать. Оставить ли кортеж или использовать список.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при настройке админки в Django - 'NoneType' object has no attribute '_meta' Arkuz Python 1 15.12.2019 17:10
[РЕШЕНО] ошибка в цикле "repeat.until" Fatal: Syntax error, "UNTIL" expected but "(" found. sashakor22 Lazarus, Free Pascal, CodeTyphon 1 17.02.2019 15:25
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
Немецкая база. Ошибка "Method form of object _subform failed" budda999 Microsoft Office Access 5 20.06.2012 12:04
Ошибка " Record, object or class type required " (Запись, объектный или классический тип требовались) kta87 Помощь студентам 2 28.02.2010 10:04