2014-10-07 3 views
-3

У меня проблема с индексированием кортежа в этом кортеже [1], который выдает индекс за пределами диапазона, но tuple [-1] работает нормально. Я никогда раньше этого не испытывал. Любые подсказки? (кортеж имеет 2 элемента)Проблема индексации кортежа Python

+3

Ваш кортеж не имеет два элемента. – sapi

+1

В качестве побочного примечания, если вы действительно называете свой кортеж 'tuple', это плохая идея, поскольку он скрывает имя функции type/constructor, поэтому вы никогда не сможете использовать его снова. – abarnert

ответ

1

Ваш кортеж фактически не имеет двух элементов. Если это действительно так, то будет работать tuple[1]. tuple[-1] просто возвращает последний элемент кортежа, поэтому она работает, даже если кортеж имеет только один элемент:

>>> a = (1,) 
>>> a[-1] 
1 
+0

мой кортеж ('number', '132'). Я использовал множество операторов печати до места, которое дает ошибку, чтобы убедиться в этом. – user96454

+0

@ user96454 Я обещаю, есть только один элемент в кортеже. Нет никакого способа, чтобы 'tuple [1]' потерпел неудачу, если было два или более. Можете ли вы добавить примерный код к своему вопросу, который воспроизводит проблему? – dano

+0

дай мне секунду, я попробую. Это тестовый пример в парсере предложений, который я пишу. Этот конкретный тестовый пример, который включает в себя синтаксический анализ числа, дает это исключение. Смогу ли я опубликовать скриншоты? Сам код довольно большой – user96454

Смежные вопросы