Кажется, существует несоответствие между вашим счетчиком и значением, которое вы ему назначаетеЧисло num_tokens отражает количество токенов, которые есть в вашем массиве слов.Это означает, что в вашем распределении вы должны размещать 'num_tokens', а не 'num_tokens + 1'.
Затем вам следует назначить номер num_tokens-1.
Если вы этого не сделаете, то, насколько я понимаю, вы никогда не запишете в позицию 0, что может привести к тому, что там будут унифицированные данные, и ваше последующее ощущение, что данные «изменились» или были «перезаписаны»
Подводя итог: слова [0] никогда не будут записаны с этим типом кода, и вы найдете там случайные данные.