Обектът TypeError 'set' не поддържа присвояване на елементи

Трябва да знам защо не ми позволява да увелича стойността на заданието с 1:

keywords = {'states' : 0, 'observations' : 1, 'transition_probability' : 2, 'emission_probability' : 3}
keylines = {-1,-1,-1,-1}

lines = file.readlines()
for i in range(0,len(lines)):
    line = lines[i].rstrip()
    if line in keywords.keys():
        keylines[keywords[line]] = i + 1 << this is where it is giving me the error

Стартирах го като клас и работи добре, но сега като част от код в ред ми дава тази грешка.


person user3408267    schedule 11.11.2016    source източник
comment
Опитайте keylines = [-1,-1,-1,-1]; така или иначе комплектът може да съдържа само едно -1. Изпълних го като клас и работи добре - не, грешите.   -  person jonrsharpe    schedule 11.11.2016
comment
Корекция: Пуснах го в клас и работи добре.   -  person user3408267    schedule 11.11.2016
comment
Не, не стана. Не може да има. Това, че сте в клас, не прави това законно нещо за набор!   -  person jonrsharpe    schedule 11.11.2016
comment
Кажете каквото искате, но това е ТОЧНО същият код, който използвах от моя клас. Можете да бъдете укорени, че работи в моя клас, а не в тази структура, както искате, но това не променя факта, че работи.   -  person user3408267    schedule 19.11.2016
comment
Задайте обекти, както ви казва съобщението за грешка, не поддържат присвояване на елементи. Те не го поддържат във функция, не го поддържат в модул и не го поддържат в клас. Това е просто факт. Вие всъщност не показвате примера, където смятате, че работи, но или редът с грешката е различен, или редът, дефиниращ keylines, е различен, както сравнението на двете ще ви каже, без да е необходимо да задавате въпроса.   -  person jonrsharpe    schedule 19.11.2016


Отговори (1)


Използвате набор, искате списък, който е създаден с квадратни скоби:

keylines = [-1,-1,-1,-1]
person Alex Hall    schedule 11.11.2016