Python - " индекс кортежа вне диапазона"
Я пишу программу для отображения информации о странах в формате таблицы. Он работал отлично, когда у меня было 3 страны, но изменение его на 10 (и соответственно корректировка всего необходимого кода) привело к ошибке "индекс кортежа вне диапазона" в строке:
print("{0:^20}{1:^20}{2:^20}{3:^20}{4:^20}{5:^20}[6:^20}{7:^20}{8:^20}{9:^20}".format(newcountrylist[i].country,newcountrylist[i].currency,newcountrylist[i].exchange))
2 ответов
вам нужно передать соответствующее количество аргументов для слотов формата. В строке формата есть 10 слотов, но вы передаете только 3 значения.
уменьшено до 4 слотов формата, только с 3 аргументами до .format()
, показывает ту же ошибку:
>>> '{0:^20}{1:^20}{2:^20}{3:^20}'.format(1, 2, 3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
>>> '{0:^20}{1:^20}{2:^20}{3:^20}'.format(1, 2, 3, 4)
' 1 2 3 4 '
когда я передал в 4 аргумента то .format()
вызов завершается успешно.
Как aswer к jon141: Я также сталкиваюсь с этой проблемой, и я пытаюсь решить эту проблему, зацикливаясь на одном элементе столбца (я передаю 2-мерный массив), а затем строю строку на основе этого. Поэтому я заканчиваю строку как
template="{0!s:10}{1!s:15}...{n!s:24}
элементы, которые я хочу отформатировать, я помещаю в кортеж. но когда я это делаю ... --3-->
template.format(tuple_variable)
он выдает ошибку, что индекс кортеж из диапазона
вероятно, потому что теперь он передает кортеж кортежа функции, который имеет один элемент, кортеж
Я еще не понял, как это исправить, но следуйте за нить если вам нужна дополнительная информация.