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
相关产品推荐
相关产品推荐

