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?
6
A
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]: [[...]]
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
http://stackoverflow.com/questions/772124/what-does-the-python-ellipsis-object -do –
@xi_ Ciò potrebbe essere correlato ma non è esattamente ciò che sta accadendo con l'OP. – SuperBiasedMan