考虑以下:

st = "Hi: %s, you are: %d"
x = ['user', 25]

st % x # Doesn't work
st % ("user", 25) # Works
st % (*x,) # Works

我只是认为这是一个非常奇怪的限制

最佳答案

嗯,但是您可以“根据列表设置格式”:

In [4]: '%s' % [1,2]
Out[4]: '[1, 2]'
%字符串内插器后面可以跟着single non-tuple object或元组。

如果它是一个元组,则将解压缩参数并将其与字符串中的占位符进行匹配。如果对象是单个非元组对象,则整个对象将传递到字符串中的占位符。

这种有点狂躁的行为是促使Python开发人员引入语法上更简洁的 str.format 方法的一部分。

另外,来自PEP 3101:

关于python - 为什么要针对元组而不是列表进行格式化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41162443/

10-14 19:11
查看更多