如何将元组传递给str.format()?

时间:2015-04-27 06:27:11

标签: python string tuples string.format

我正在尝试使用str.format()函数在列中打印矩阵。

这就是错误的界限:

>>>> "{!s:4}{!s:5}".format('j',4,3)
'j   4    '
>>>> "{!s:4}{!s:5}".format(b)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
>>> b
('dat', 'is')

我做错了什么?

编辑: 我想我知道问题是什么:我传递了一个带有两个元素的元组,而不是传递给函数作为一个带有一个元素的元组,我的原始元组。因此这个错误。所以问题是如何将这个元组传递给格式函数...

2 个答案:

答案 0 :(得分:4)

如果你能确定它的长度,你可以打开元组。

>>> "{!s:4}{!s:5}".format(*b)
'j   4    '

答案 1 :(得分:-1)

编辑:对不起,在我完全理解之前,我太早回答了你的问题。我想你要解开元组,就像在progo的答案中一样。

这略微取决于您使用的Python版本。以下适用于Python 3.5(可能还有所有Python 3)。

代码:

b = ("dat", "is")
"{0}".format(b)

输出:

"('dat', 'is')"

同时检查Python docs on string formatting