【发布时间】:2019-04-03 20:00:15
【问题描述】:
我正在阅读Python documentation on fancier output formatting,他们的示例代码令人困惑。在以下代码中:
table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}
print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; Dcab: {0[Dcab]:d}'.format(table))
Jack: 4098; Sjoerd: 4127; Dcab: 8637678
0 在{0[Jack]:d} 和{0[Sjoerd]:d} 中指的是什么。本教程的解释省略关于这些零的功能的任何提示。
This video tutorial about formatting strings uses the same syntax without explaining it clearly too!
如果我用1 代替0,我会收到错误:
IndexError: tuple index out of range
tuple 与它有什么关系?
取自文档:
如果你有一个很长的格式字符串不想拆分 起来,如果你能引用变量就好了 按名称而不是按位置格式化。这可以通过简单地完成 传递dict并使用方括号'[]'来访问键
【问题讨论】:
-
0指format的第一个参数,即table。 -
请不要在您的问题中编辑答案。这就是答案部分的用途。 =)