code: def vchoice_split(idxs, choices, n_options):
      rval = [[] for ii in range(n_options)]
      if len(idxs) != len(choices):
          raise ValueError(
              "idxs and choices different len",
              (len(idxs), len(choices)),
          )
      for ii, cc in zip(idxs, choices):
          rval[cc].append(ii)
      return rval
  
imports: import sys
  import numpy
  from .pyll import Apply
  from .pyll import as_apply
  from .pyll import dfs
  from .pyll import toposort
  from .pyll import scope
  from .pyll import stochastic
label_desc: Use image node_id 2 for calling a global function with example usage: vchoice_split(idxs, choices, n_options) and returns: rval