我在Python 3.4.2中的format方法有一个问题。显示以下错误:
Traceback (most recent call last):
Python Shell, prompt 2, line 3
builtins.IndexError: tuple index out of range
代码:
A = "{0}={1}"
B = ("str", "string")
C = A.format(B)
print (C)
元组包含两个索引为0和1的字符串,不应该显示此错误。
根据文档,您应该将参数作为位置参数传递,而不是作为元组传递。如果您想使用元组中的值,请使用*
操作符。
str.format(*args, **kwargs)
执行字符串格式化操作。调用此方法的字符串可以包含用大括号{}分隔的文本或替换字段。每个替换字段要么包含位置参数的数字索引,要么包含关键字参数的名称。返回字符串的副本,其中每个替换字段被替换为相应参数的字符串值。
" 1+2的和是{0}".format(1+2)' 1 + 2的和是3'
更具体地说,您需要做以下操作:
A = "{0}={1}"
B = ("str", "string")
C = A.format(*B)
print (C)
或
A = "{0}={1}"
C = A.format("str", "string")
print (C)
您必须解压缩元组以获得两个参数而不是一个元组:
A = "{0}={1}"
B = ("str", "string")
C = A.format(*B)
print (C)
或者修改你的格式字符串以接受一个参数和序列中的两个元素。
A = "{0[0]}={0[1]}"
B = ("str", "string")
C = A.format(B)
print (C)