2015-12-01 2 views
6

Вместо списка с некоторыми объектами в нем я получаю [...] всякий раз, когда запускаю свой код. Я хотел бы знать, что это значит, чтобы отладить мой код.В чем смысл [...] в python?

+0

http://stackoverflow.com/questions/772124/what-does-the-python-ellipsis-object -do –

+0

@xi_ Это может быть связано, но не совсем то, что происходит с OP. – SuperBiasedMan

ответ

13

Это, скорее всего, ссылка на сам объект. Пример:

In [1]: l = [0, 1] 

In [2]: l.append(l) 

In [3]: l 
Out[3]: [0, 1, [...]] 

В приведенном выше, список l содержит ссылку на себя. Это означает, что вы можете бесконечно печатать элементы внутри него (предположим, [0, 1, [0, 1, [0, 1, [...]]]] и т. Д.), Который ограничен с помощью IMO ..., вы неправильно добавляете значения где-то в свой код, что вызывает это.

Более лаконичный пример:

In [1]: l = [] 

In [2]: l.append(l) 

In [3]: l 
Out[3]: [[...]] 
+0

Fun stuff, 'l [2] [2] [2] [2] [2]' (и т. Д.) Возвращает то же самое, что и 'l' (верхний пример) :-) – adrianus

+0

Очень полезно. Благодаря! – Algunillo

2
>>> data = [] 
>>> data.append([1,3,4]) 
>>> data 
[[1, 3, 4]] 
>>> data.append([1,3,data]) 
>>> data 
[[1, 3, 4], [1, 3, [...]]] 
>>> data[0] 
[1, 3, 4] 
>>> data[1] 
[1, 3, [[1, 3, 4], [...]]] 
>>> data.append([1,2,data]) 
>>> data 
[[1, 3, 4], [1, 3, [...]], [1, 2, [...]]] 
>>> data[2] 
[1, 2, [[1, 3, 4], [1, 3, [...]], [...]]] 

Тогда он просто получает странно

+0

Очень полезно. Благодаря! – Algunillo