code: def bandit(self, choice_rewards):
          
          return max(choice_rewards, key=lambda a: np.mean(choice_rewards[a]))
docs: Return the choice to take next using multi-armed bandit
  
          Multi-armed bandit method. Accepts a mapping of choices to rewards which indicate their
          historical performance, and returns the choice that we should make next in order to
          maximize expected reward in the long term.
  
          The default implementation is to return the arm with the highest average score.
  
          Args:
              choice_rewards (Dict[object, List[float]]): maps choice IDs to lists of rewards.
  
          Returns:
              str: the name of the choice to take next.