我想使用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.
那么我怎样才能将元组“转换”为单独的变量?或者有其他的解决方法吗?我想使用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.
那么我怎样才能将元组“转换”为单独的变量?或者有其他的解决方法吗?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'
map()
中使用,而又不想定义 lambda 或自定义函数以使用 *
解压元组,则此方法非常有用!这是我能找到的唯一讨论索引格式解压元组的解决方案。干杯! - Tim您可以解包元组的内容。
s=s.format(*t)