考虑以下:
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/