sequencetools.iterate_sequence_cyclically

abjad.tools.sequencetools.iterate_sequence_cyclically.iterate_sequence_cyclically(sequence, step=1, start=0, length='inf')[source]

New in version 1.1.

Iterate sequence cyclically according to step, start and length:

abjad> from abjad.tools import sequencetools
abjad> sequence = [1, 2, 3, 4, 5, 6, 7]
abjad> list(sequencetools.iterate_sequence_cyclically(sequence, length = 20))
[1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6]
abjad> list(sequencetools.iterate_sequence_cyclically(sequence, 2, length = 20))
[1, 3, 5, 7, 2, 4, 6, 1, 3, 5, 7, 2, 4, 6, 1, 3, 5, 7, 2, 4]
abjad> list(sequencetools.iterate_sequence_cyclically(sequence, 2, 3, length = 20))
[4, 6, 1, 3, 5, 7, 2, 4, 6, 1, 3, 5, 7, 2, 4, 6, 1, 3, 5, 7]
abjad> list(sequencetools.iterate_sequence_cyclically(sequence, -2, 5, length = 20))
[6, 4, 2, 7, 5, 3, 1, 6, 4, 2, 7, 5, 3, 1, 6, 4, 2, 7, 5, 3]

Changed in version 2.0: allows generator input.

abjad> list(sequencetools.iterate_sequence_cyclically(xrange(1, 8), -2, 5, length = 20))
[6, 4, 2, 7, 5, 3, 1, 6, 4, 2, 7, 5, 3, 1, 6, 4, 2, 7, 5, 3]

Set step to jump size and direction across sequence.

Set start to the index of sequence where the function begins iterating.

Set length to number of elements to return. Set to 'inf' to return infinitely.

Return generator.

Changed in version 2.0: renamed sequencetools.phasor() to sequencetools.iterate_sequence_cyclically().

This Page