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

Python3-在str.format()中使用元组,python,string,tuples,string-formatting,Python,String,Tuples,String Formatting,我正在尝试使用str.format()方法,当我的值存储在元组中时遇到了一些困难。例如,如果我这样做: s = "x{}y{}z{}" s.format(1,2,3) 然后我得到了'x1y2z3'-没问题。 但是,当我尝试时: s = "x{}y{}z{}" tup = (1,2,3) s.format(tup) 我明白了 那么,如何将元组“转换”为单独的变量呢?或者其他解决方法 使用以下命令传入元组: tup之前的*告诉Python将元组解压为单独的参数,就像调用s.format(tup[

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

s = "x{}y{}z{}"
s.format(1,2,3)
然后我得到了
'x1y2z3'
-没问题。
但是,当我尝试时:

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)
演示:


您可以解包元组的内容


s=s.format(*t)

您实际上在传递一个参数,它是一个
元组
.def fun(*args):print('My args:{!a}.format(args)),我只是不知道“a”是什么意思,但它似乎是一个“转换说明符”。我也看过“r”的用法。谢谢!它起作用了,但你们能解释一下*到底是怎么回事吗?或者让我看一下文档中的正确位置?@soungalo:如果在map()中使用,并且您不想定义lambda或自定义函数来使用
*
解包元组,请看这是否真的很有用!这是唯一一个(我能找到的)讨论以格式索引以解压元组的解决方案。干杯这似乎并没有添加任何现有答案中尚未包含的内容。@Kevin-所以请投反对票。不要标记,越短越好
s = "x{}y{}z{}"
tup = (1,2,3)
s.format(*tup)
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'