Skip to content

Instantly share code, notes, and snippets.

@danielballan
Last active August 29, 2015 14:25
Show Gist options
  • Select an option

  • Save danielballan/389738026b5e0de02f0c to your computer and use it in GitHub Desktop.

Select an option

Save danielballan/389738026b5e0de02f0c to your computer and use it in GitHub Desktop.
to snake or not to snake
In [42]: x = cycler('x', [1,2,3])
In [43]: y = cycler('y', [1,2])
In [44]: list(bss.snake_cyclers([y, x], [False, True]))
Out[44]:
[{'x': 1, 'y': 1},
{'x': 2, 'y': 1},
{'x': 3, 'y': 1},
{'x': 3, 'y': 2},
{'x': 2, 'y': 2},
{'x': 1, 'y': 2}]
In [45]: list(bss.snake_cyclers([y, x], [False, False]))
Out[45]:
[{'x': 1, 'y': 1},
{'x': 2, 'y': 1},
{'x': 3, 'y': 1},
{'x': 1, 'y': 2},
{'x': 2, 'y': 2},
{'x': 3, 'y': 2}]
In [55]: z = cycler('z', [1,2,3])
In [56]: list(bss.snake_cyclers([z, y, x], [False, False, False]))
Out[56]:
[{'x': 1, 'y': 1, 'z': 1},
{'x': 2, 'y': 1, 'z': 1},
{'x': 3, 'y': 1, 'z': 1},
{'x': 1, 'y': 2, 'z': 1},
{'x': 2, 'y': 2, 'z': 1},
{'x': 3, 'y': 2, 'z': 1},
{'x': 1, 'y': 1, 'z': 2},
{'x': 2, 'y': 1, 'z': 2},
{'x': 3, 'y': 1, 'z': 2},
{'x': 1, 'y': 2, 'z': 2},
{'x': 2, 'y': 2, 'z': 2},
{'x': 3, 'y': 2, 'z': 2},
{'x': 1, 'y': 1, 'z': 3},
{'x': 2, 'y': 1, 'z': 3},
{'x': 3, 'y': 1, 'z': 3},
{'x': 1, 'y': 2, 'z': 3},
{'x': 2, 'y': 2, 'z': 3},
{'x': 3, 'y': 2, 'z': 3}]
In [57]: list(bss.snake_cyclers([z, y, x], [False, True, True]))
Out[57]:
[{'x': 1, 'y': 1, 'z': 1},
{'x': 2, 'y': 1, 'z': 1},
{'x': 3, 'y': 1, 'z': 1},
{'x': 3, 'y': 2, 'z': 1},
{'x': 2, 'y': 2, 'z': 1},
{'x': 1, 'y': 2, 'z': 1},
{'x': 1, 'y': 2, 'z': 2},
{'x': 2, 'y': 2, 'z': 2},
{'x': 3, 'y': 2, 'z': 2},
{'x': 3, 'y': 1, 'z': 2},
{'x': 2, 'y': 1, 'z': 2},
{'x': 1, 'y': 1, 'z': 2},
{'x': 1, 'y': 1, 'z': 3},
{'x': 2, 'y': 1, 'z': 3},
{'x': 3, 'y': 1, 'z': 3},
{'x': 3, 'y': 2, 'z': 3},
{'x': 2, 'y': 2, 'z': 3},
{'x': 1, 'y': 2, 'z': 3}]
In [58]: list(bss.snake_cyclers([z, y, x], [False, True, False]))
Out[58]:
[{'x': 1, 'y': 1, 'z': 1},
{'x': 2, 'y': 1, 'z': 1},
{'x': 3, 'y': 1, 'z': 1},
{'x': 1, 'y': 2, 'z': 1},
{'x': 2, 'y': 2, 'z': 1},
{'x': 3, 'y': 2, 'z': 1},
{'x': 1, 'y': 2, 'z': 2},
{'x': 2, 'y': 2, 'z': 2},
{'x': 3, 'y': 2, 'z': 2},
{'x': 1, 'y': 1, 'z': 2},
{'x': 2, 'y': 1, 'z': 2},
{'x': 3, 'y': 1, 'z': 2},
{'x': 1, 'y': 1, 'z': 3},
{'x': 2, 'y': 1, 'z': 3},
{'x': 3, 'y': 1, 'z': 3},
{'x': 1, 'y': 2, 'z': 3},
{'x': 2, 'y': 2, 'z': 3},
{'x': 3, 'y': 2, 'z': 3}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment