2011-12-12 13 views
5

Estoy intentando mejorar mi documentación. Quiero decir que esta función acepta algo que es una colección. Es modificable, pero el código repetirá varias veces. Una "lista" es demasiado específica, y una "iterable" no funciona porque algunos iterables solo pueden iterarse una vez.Nombre de Python de iterable que puede repetirse muchas veces

¿Hay un nombre para algo? "Re-iterable"? Múltiple-iterable?

+0

Buena pregunta ... –

+2

No respondiendo su pregunta, pero le sugiero que pueda usar itertools.tee en su código, para que pueda aceptar cualquier iterable en absoluto. – jsbueno

+0

@jsbueno: Sin embargo, esto introduciría una copia redundante al pasar en una secuencia. –

Respuesta

2

No se me ocurre nada apropiado. Reiterable suena como un buen término, ¿por qué no definirlo claramente en su documentación y luego usarlo?

5

Probablemente desee el término "sequence". Una secuencia en Python es algo que tiene una longitud y admite el acceso a elementos por índice.

+1

Aunque también podría ser demasiado específico, por ejemplo, una lista vinculada no admite el acceso por índice, pero aún es reiterable. –

+1

@SideshowBob: No creo que esto sea demasiado restrictivo en la práctica. La única implementación de lista enlazada que viene con Python es la lista de enlaces fragmentados 'deque', que también es una secuencia. Por supuesto, acceder por índice es O (n) para un 'deque'. –

+2

@SvenMarnach: Un ValuesView es "reiterativo", pero no admite el acceso por índice en general. –

Cuestiones relacionadas