python中如何实现多个%s时列表展开

假设有这样的1个字符串:

fmt = %s,%s,%s

而对应的数据为[1,2,3],现在想实现在格式化时将列表自动展开:

fmt = fmt % (*[1,2,3])

就可以得到结果1,2,3,而不是语法错误。

回复
阅读 6.3k
3 个回答

可以采用如下的方式来实现,

fmt = fmt % tuple([1,2,3])

这样就得到数据结果了,而不会出现语法错误。

试了一下,你不可以使用星号表达式把一个list展开成一个tuple,会报

SyntaxError: can't use starred expression here

但你可以

fmt % tuple([1, 2, 3])

加多个逗号表示tuple

fmt = '%s, % s, % s'
fmt = fmt % (*[1, 2, 3], )
print(fmt)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏