簡體   English   中英

Python - “元組索引超出范圍”

[英]Python - “tuple index out of range”

我正在編寫一個程序,以表格格式顯示有關國家/地區的信息。 當我有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))

您需要為格式槽傳入匹配數量的參數。 您的格式字符串有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()調用成功。

作為jon141的一個問題:我也面臨這個問題,我試圖通過循環一個列的一個項目來解決這個問題(我正在傳遞一個二維數組),然后根據它構建字符串。 所以我最終得到一個字符串

template="{0!s:10}{1!s:15}...{n!s:24}

我要格式化的元素我放入元組。 但是當我這樣做的時候

template.format(tuple_variable)

它會拋出元組索引超出范圍的錯誤

可能是因為它現在將一個元組的元組傳遞給函數,該函數有一個元素,即元組

我還沒有弄清楚如何解決這個問題,但如果您需要更多信息,請關注該主題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM