2011-08-28 10 views
13

yo acabamos de alguna salida raro de un script en Python:¿Qué significa [...] (una elipsis) en una lista en Python?

[[(7, 6), (6, 4), (7, 2)], [...], [...], [...], [(7, 6), (8, 4), (7, 2)], [...], [...], [...], [...], [...], [...], [...]] 

El resultado debe ser una lista de listas de tuplas. Pero no tengo idea de por qué [...] aparece.

¿Qué significa [...]?

No creo que sea una lista vacía, ya que una lista vacía era []. ¿Son estos quizás duplicados?

+2

¿Cuál es el código? –

+0

Esto podría ayudar - http://stackoverflow.com/questions/118370/how-do-you-use-the-ellipsis-slicing-syntax-in-python – arunkumar

+0

@arunkumar: El 'repr' de' Ellipsis' es ' "Elipsis" '. –

Respuesta

25

Es una referencia recursiva. Su lista se contiene a sí misma, o al menos hay algún tipo de ciclo.

Ejemplo:

x = [] 
x.insert(0, x) 
# now the repr(x) is '[[...]]'. 

El built-in repr para las listas detecta esta situación y no intenta recursivo en el sub-lista (como lo haría normalmente), porque eso daría lugar a la repetición infinita.

Tenga en cuenta que ... no necesariamente te dice qué lista se denomina:

y, z = [], [] 
x = [y, z] 
y.insert(0, z) 
z.insert(0, y) 
# looks the same as it would if y contained y and z contained z. 

por lo repr no es realmente un formato de serialización completa para las listas.

En cuanto a por qué los recibe: no somos videntes, y no podemos solucionar el problema con su código a menos que veamos el código.

Cuestiones relacionadas