`{...}` 在 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 递归,即包含自身。一个更简单的例子:
>>> a = []
>>> a.append(a)
>>> a
[[...]]
这是一个列表,其唯一元素是它本身。显然repr不能按字面打印,否则会无限长;相反,内置类型会在发生这种情况时发出通知,并使用 ...
表示自包含。
所以它不是一个特殊类型的值,只是正常的英语使用“...”表示"something was omitted here",加上大括号表示省略的部分是字典。您可能还会看到它带有用于列表的括号,如上所示,或者偶尔带有用于元组的括号:
>>> b = [],
>>> b[0].append(b)
>>> b
([(...)],)
Python 3 提供了一些工具,因此您可以使用自己的对象以 reprlib
.
的形式执行此操作
有人发帖
>>> (a, b) = a[b] = {}, 5
>>> a
{5: ({...}, 5)}
虽然这里有很多东西要解压,但我不明白(有趣的字符表达的语义似乎特别难以搜索)是 {...}
在这种情况下的意思?稍微改变一下上面的内容:
>>> (a, b) = a[b] = {'x':1}, 5
>>> a
{5: ({...}, 5), 'x': 1}
真正让我困惑的是第二个输出:我本以为 {...}
会被改变,但我最接近的 猜测 是 , 5
表示第一个元素不知何故未定义的元组?那就是 {...}
的意思?如果是这样,这对我来说是 Python 中的一个新类型类别,我想为它取一个名字,以便我了解更多。
这表明 dict 递归,即包含自身。一个更简单的例子:
>>> a = []
>>> a.append(a)
>>> a
[[...]]
这是一个列表,其唯一元素是它本身。显然repr不能按字面打印,否则会无限长;相反,内置类型会在发生这种情况时发出通知,并使用 ...
表示自包含。
所以它不是一个特殊类型的值,只是正常的英语使用“...”表示"something was omitted here",加上大括号表示省略的部分是字典。您可能还会看到它带有用于列表的括号,如上所示,或者偶尔带有用于元组的括号:
>>> b = [],
>>> b[0].append(b)
>>> b
([(...)],)
Python 3 提供了一些工具,因此您可以使用自己的对象以 reprlib
.