Python 3-在str.format()中使用元组

2024-05-08 01:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用str.format()方法,当我的值存储在元组中时遇到了一些困难。例如,如果我这样做:

s = "x{}y{}z{}"
s.format(1,2,3)

然后我得到'x1y2z3'-没问题。
但是,当我尝试:

s = "x{}y{}z{}"
tup = (1,2,3)
s.format(tup)

我明白了

IndexError: tuple index out of range.

那么,如何将元组“转换”为单独的变量呢?或者其他解决办法?


Tags: of方法formatindexrangeout元组str
2条回答

你可以把元组的连词拆开。

s=s.format(*t)

使用^{} variable arguments call syntax传入元组:

s = "x{}y{}z{}"
tup = (1,2,3)
s.format(*tup)

tup之前的*告诉Python将元组解压成单独的参数,就好像您调用了s.format(tup[0], tup[1], tup[2])

或者可以索引第一个位置参数:

s = "x{0[0]}y{0[1]}z{0[2]}"
tup = (1,2,3)
s.format(tup)

演示:

>>> tup = (1,2,3)
>>> s = "x{}y{}z{}"
>>> s.format(*tup)
'x1y2z3'
>>> s = "x{0[0]}y{0[1]}z{0[2]}"
>>> s.format(tup)
'x1y2z3'

相关问题 更多 >