partition_sequence_by_weights

sequencetools.partition_sequence_by_weights(sequence, weights, cyclic=False, overhang=False, allow_part_weights=Exact)

Partitions sequence by weights exactly.

>>> sequence = [3, 3, 3, 3, 4, 4, 4, 4, 5]

Example 1. Partitions sequence once by weights: overhang:

>>> sequencetools.partition_sequence_by_weights(
...     sequence,
...     [3, 9],
...     cyclic=False,
...     overhang=False,
...     )
[[3], [3, 3, 3]]

Example 2. Partitions sequence once by weights. Allows overhang:

>>> sequencetools.partition_sequence_by_weights(
...     sequence,
...     [3, 9],
...     cyclic=False,
...     overhang=True,
...     )
[[3], [3, 3, 3], [4, 4, 4, 4, 5]]

Example 3. Partitions sequence cyclically by weights:

>>> sequencetools.partition_sequence_by_weights(
...     sequence,
...     [12],
...     cyclic=True,
...     overhang=False,
...     )
[[3, 3, 3, 3], [4, 4, 4]]

Example 4. Partitions sequence cyclically by weights. Allows overhang:

>>> sequencetools.partition_sequence_by_weights(
...     sequence,
...     [12],
...     cyclic=True,
...     overhang=True,
...     )
[[3, 3, 3, 3], [4, 4, 4], [4, 5]]
>>> sequence = [3, 3, 3, 3, 4, 4, 4, 4, 5, 5]

Example 5. Partitions sequence once by weights. Allows part weights to be just less than specified:

>>> sequencetools.partition_sequence_by_weights(
...     sequence,
...     [10, 4],
...     cyclic=False,
...     overhang=False,
...     allow_part_weights=Less,
...     )
[[3, 3, 3], [3]]

Example 6. Partitions sequence once by weights. Allows part weights to be just less than specified. Allows overhang:

>>> sequencetools.partition_sequence_by_weights(
...     sequence,
...     [10, 4],
...     cyclic=False,
...     overhang=True,
...     allow_part_weights=Less,
...     )
[[3, 3, 3], [3], [4, 4, 4, 4, 5, 5]]

Example 7. Partitions sequence cyclically by weights. Allows part weights to be just less than specified:

>>> sequencetools.partition_sequence_by_weights(
...     sequence,
...     [10, 5],
...     cyclic=True,
...     overhang=False,
...     allow_part_weights=Less,
...     )
[[3, 3, 3], [3], [4, 4], [4], [4, 5], [5]]

Example 8. Partitions sequence cyclically by weights. Allows part weights to be just less than specified. Allows overhang:

>>> sequencetools.partition_sequence_by_weights(
...     sequence,
...     [10, 5],
...     cyclic=True,
...     overhang=True,
...     allow_part_weights=Less,
...     )
[[3, 3, 3], [3], [4, 4], [4], [4, 5], [5]]
>>> sequence = [3, 3, 3, 3, 4, 4, 4, 4, 5, 5]

Example 9. Partitions sequence once by weights. Allow part weights to be just more than specified:

>>> sequencetools.partition_sequence_by_weights(
...     sequence,
...     [10, 4],
...     cyclic=False,
...     overhang=False,
...     allow_part_weights=More,
...     )
[[3, 3, 3, 3], [4]]

Example 10. Partitions sequence once by weights. Allows part weights to be just more than specified. Allows overhang:

>>> sequencetools.partition_sequence_by_weights(
...     sequence,
...     [10, 4],
...     cyclic=False,
...     overhang=True,
...     allow_part_weights=More,
...     )
[[3, 3, 3, 3], [4], [4, 4, 4, 5, 5]]

Example 11. Partitions sequence cyclically by weights. Allows part weights to be just more than specified:

>>> sequencetools.partition_sequence_by_weights(
...     sequence,
...     [10, 4],
...     cyclic=True,
...     overhang=False,
...     allow_part_weights=More,
...     )
[[3, 3, 3, 3], [4], [4, 4, 4], [5]]

Example 12. Partitions sequence cyclically by weights. Allows part weights to be just more than specified. Allows overhang:

>>> sequencetools.partition_sequence_by_weights(
...     sequence,
...     [10, 4],
...     cyclic=True,
...     overhang=True,
...     allow_part_weights=More,
...     )
[[3, 3, 3, 3], [4], [4, 4, 4], [5], [5]]

Returns list of sequence objects.