class_docstr: Composable cycles
  
  This class has compositions methods:
  
  ``+``
    for 'inner' products (zip)
  
  ``+=``
    in-place ``+``
  
  ``*``
    for outer products (`itertools.product`) and integer multiplication
  
  ``*=``
    in-place ``*``
  
  and supports basic slicing via ``[]``
  
  Parameters
  ----------
  left : Cycler or None
      The 'left' cycler
  
  right : Cycler or None
      The 'right' cycler
  
  op : func or None
      Function which composes the 'left' and 'right' cyclers.
class_docstr_tok: ["Composable","cycles","This","class","has","compositions","methods",":","``","+","``","for","'inner","'","products","(","zip",")","``","+=","``","in-place","``","+","``","``","*","``","for","outer","products","(","`","itertools.product","`",")","and","integer","multiplication","``","*","=","``","in-place","``","*","``","and","supports","basic","slicing","via","``","[","]","``","Parameters","--","--","--","--","--","left",":","Cycler","or","None","The","'left","'","cycler","right",":","Cycler","or","None","The","'right","'","cycler","op",":","func","or","None","Function","which","composes","the","'left","'","and","'right","'","cyclers","."]
docstr: Values by key
  
  This returns the transposed values of the cycler.  Iterating
  over a `Cycler` yields dicts with a single value for each key,
  this method returns a `dict` of `list` which are the values
  for the given key.
  
  The returned value can be used to create an equivalent `Cycler`
  using only `+`.
  
  Returns
  -------
  transpose : dict
      dict of lists of the values for each key.
docstr_tok: ["Values","by","key","This","returns","the","transposed","values","of","the","cycler",".","Iterating","over","a","`","Cycler","`","yields","dicts","with","a","single","value","for","each","key",",","this","method","returns","a","`","dict","`","of","`","list","`","which","are","the","values","for","the","given","key",".","The","returned","value","can","be","used","to","create","an","equivalent","`","Cycler","`","using","only","`","+","`",".","Returns","--","--","--","-","transpose",":","dict","dict","of","lists","of","the","values","for","each","key","."]
code: def by_key(self):
      """Values by key
  
      This returns the transposed values of the cycler.  Iterating
      over a `Cycler` yields dicts with a single value for each key,
      this method returns a `dict` of `list` which are the values
      for the given key.
  
      The returned value can be used to create an equivalent `Cycler`
      using only `+`.
  
      Returns
      -------
      transpose : dict
          dict of lists of the values for each key.
      """
  
      # TODO : sort out if this is a bottle neck, if there is a better way
      # and if we care.
  
      keys = self.keys
      out = {k: list() for k in keys}
  
      for d in self:
          for k in keys:
              out[k].append(d[k])
      return out
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import six
  from itertools import product, cycle
  from six.moves import zip, reduce
  from operator import mul, add
  import copy
label_desc: Use image node_id 19 for calling the Cycler obj's underlying member method code with example usage: obj.by_key() and returns: out