簡體   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