簡體   English   中英

`{...}`在python變量的打印輸出中是什么意思?

[英]What does `{…}` mean in the print output of a python variable?

有人發布了這個有趣的公式 ,我在Python 3控制台中試了一下:

>>> (a, b) = a[b] = {}, 5
>>> a
{5: ({...}, 5)}

雖然這里有很多需要解壓縮的東西,但是我不理解的東西(以及有趣的字符公式的語義似乎特別難以搜索)是{...}在這種情況下意味着什么? 改變上面的一點:

>>> (a, b) = a[b] = {'x':1}, 5
>>> a
{5: ({...}, 5), 'x': 1}

這是第二個輸出讓我感到困惑:我本來期望{...}被改變了,但我最接近的猜測, 5意味着一個元組,其中第一個元素以某種方式未定義? 這就是{...}含義? 如果是這樣,這是我在Python中的一個新類型,我希望有一個名稱,以便我可以了解更多。

這表明dict是recurses,即包含它自己。 一個更簡單的例子:

>>> a = []
>>> a.append(a)
>>> a
[[...]]

這是一個唯一元素本身的列表。 顯然,repr不能按字面打印,否則會無限長; 相反,內置類型會在發生這種情況時發出通知並使用...來表示自我控制。

所以這不是一種特殊的價值,只是正常的英語使用“......”表示“這里省略了什么”,加上大括號表示省略的部分是一個字典。 您也可以使用括號表示列表,如上所示,或偶爾使用括號表示元組:

>>> b = [],
>>> b[0].append(b)
>>> b
([(...)],)

Python 3提供了一些工具,因此您可以使用reprlib的形式對自己的對象執行此reprlib

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM