code: def _fit_data_container(
      self, data_container: DACT, context: CX
  ) -> Tuple["BaseStep", DACT]:
      fitted_steps = []
      for i, (ids, data_inputs, expected_outputs) in enumerate(
          data_container
      ):
          fitted_step = self[i].handle_fit(
              DACT(
                  ids=ids,
                  data_inputs=data_inputs,
                  expected_outputs=expected_outputs,
              ),
              context,
          )
          fitted_steps.append(fitted_step)
  
      self.steps_as_tuple = [(step.name, step) for step in fitted_steps]
  
      return self
  
imports: import copy
  from operator import itemgetter
  from typing import Callable, List, Optional, Tuple, Union
  from neuraxle.base import CX, DACT, BaseStep, BaseTransformer, ForceHandleMixin, ForceHandleOnlyMixin, Identity, MetaStep, NamedStepsList, TruncableJoblibStepSaver
  from neuraxle.data_container import DIT, EOT, IDT, DACTData, ListDataContainer
  from neuraxle.steps.flow import ExecuteIf
  import numpy
label_desc: Use image node_id 6 for calling the StepClonerForEachDataInput obj's underlying member method code with example usage: obj._fit_data_container(data_container, context) and returns: self