You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字符串format格式化输出顺序疑问:为何结果与预期不符?

理解Python字符串format方法的位置索引

嘿,我来帮你理清这个困惑!你搞不懂输出顺序的核心原因,是没摸透str.format()方法里占位符的索引规则,咱们一步步拆解来看:

先看你的代码片段:

>>> names = "{1}, {2} and {0}".format('John', 'Bill', 'Sean')
>>> print(names)
Bill, Sean and John
>>> print(type(names))
<class 'str'>

这里format()括号里的参数是按顺序排列的,但它们的索引是从0开始计数的:

  • 第一个参数'John'对应的索引是0
  • 第二个参数'Bill'对应的索引是1
  • 第三个参数'Sean'对应的索引是2

而字符串里的{1}、{2}、{0},就是明确指定要调用对应索引的参数:

  • {1} → 取索引1的参数:Bill
  • {2} → 取索引2的参数:Sean
  • {0} → 取索引0的参数:John

把这些替换进字符串里,自然就得到了Bill, Sean and John这个结果。

如果你的预期是Bill, John and Sean,那字符串应该写成"{1}, {0} and {2}";要是想得到John, Sean and Bill,则是"{0}, {2} and {1}",你可以修改占位符索引试试,马上就能验证这个逻辑~

内容的提问来源于stack exchange,提问作者Narendra Janapati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:25:56