2015-12-01 13 views
6

Invece di una lista con alcuni oggetti, ottengo [...] ogni volta che eseguo il mio codice. Mi piacerebbe sapere cosa significa, per eseguire il debug del mio codice.Qual è il significato di [...] in python?

+0

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

+0

@xi_ Ciò potrebbe essere correlato ma non è esattamente ciò che sta accadendo con l'OP. – SuperBiasedMan

risposta

13

Questo molto probabilmente è un riferimento all'oggetto stesso. Esempio:

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

In [2]: l.append(l) 

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

In precedenza, l'elenco l contiene un riferimento a se stessa. Ciò significa che è possibile stampare all'infinito elementi all'interno di esso (immagini [0, 1, [0, 1, [0, 1, [...]]]] e così via), che è limitato utilizzando l'IMO ..., in modo errato aggiungendo valori da qualche parte nel codice che causa questo.

Un esempio più succinto:

In [1]: l = [] 

In [2]: l.append(l) 

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

Fun stuff, 'l [2] [2] [2] [2] [2]' (e così via) restituisce lo stesso di solo 'l' (esempio in alto) :-) – adrianus

+0

Molto utile. Grazie! – 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, [...]], [...]]] 

Poi si ottiene solo strano

+0

Molto utile. Grazie! – Algunillo