2012-12-16 32 views
7

Tôi đang viết chương trình để hiển thị thông tin về các quốc gia theo định dạng bảng. Nó hoạt động hoàn hảo tốt khi tôi có 3 quốc gia, nhưng thay đổi nó thành 10 (và điều chỉnh tất cả các mã cần thiết cho phù hợp) dẫn đến lỗi "Chỉ số Tuple ngoài phạm vi" trong dòng:Python - "chỉ mục tuple nằm ngoài phạm vi"

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)) 

Trả lời

10

Bạn cần vượt qua trong một số đối số phù hợp cho các vị trí định dạng của bạn. Chuỗi định dạng của bạn có 10 vị trí, nhưng bạn chỉ chuyển qua 3 giá trị.

Giảm đến 4 khe cắm dạng, với chỉ có 3 đối số cho .format(), cho thấy lỗi tương tự:

>>> '{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   ' 

Khi tôi trôi qua trong 4 đối số cuộc gọi .format() thành công.

+0

Ah vâng, tôi thấy những gì tôi đã làm sai. Cảm ơn! – keirbtre

0

Là một aswer để jon141: Tôi cũng đang gặp vấn đề này và tôi đang cố gắng giải quyết điều này bằng cách lặp qua một mục của một cột (tôi đang chuyển mảng 2 chiều) và sau đó tạo chuỗi dựa trên trong vấn đề này. Vì vậy, tôi kết thúc bằng một chuỗi như

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

Các yếu tố tôi muốn định dạng tôi được đặt trong bộ. nhưng khi tôi làm

template.format(tuple_variable) 

nó ném một lỗi mà chỉ số tuple là ra khỏi phạm vi

Có lẽ vì nó bây giờ đi qua một tuple của một tuple đến chức năng, trong đó có một yếu tố, các tuple

Tôi chưa tìm ra cách khắc phục điều đó, nhưng hãy làm theo thread nếu bạn cần thêm thông tin về nó.

Các vấn đề liên quan