繁体   English   中英

Python字符串format()函数在语法中使用零引用字典

[英]Python string format() function using zero in the syntax to reference dictionary

我正在阅读有关更高级输出格式Python文档,并且它们的示例代码令人困惑。 在下面的代码中:

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}中指的是什么。 本教程的说明省略了有关这些零的功能的任何提示。 这个关于格式化字符串的视频教程使用相同的语法,但也没有清楚地解释它!

如果我将1替换为0 ,则会出现错误:

IndexError: tuple index out of range

tuple与它有什么关系?

摘自文档:

如果您不想拆分很长的格式字符串,那么最好引用要按名称而不是按位置格式化的变量。 这可以通过简单地传递字典并使用方括号“ []”来访问键来完成。

您可以使用:

table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}
print('Jack: {Jack}; Sjoerd: {Sjoerd}; Dcab: {Dcab}'.format(**table))

0format参数的索引,在这种情况下为table

它不适用于1因为只有一个参数,这就是“元组索引超出范围”的意思。

文档确实在这里提到了这一点

括号中的数字可用于引用传递到str.format()方法中的对象的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM