<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def distance_landscape_as_3d_data(self, x_axis, y_axis):
 """ Returns the distance landscape as three-dimensional data for the specified projection. :param x_axis: variable to be plotted on the x axis of projection :param y_axis: variable to be plotted on the y axis of projection :return: a 3-tuple (x, y, z) where x and y are the lists of coordinates and z the list of distances at respective coordinates """

        if not self.distance_landscape:
            raise Exception('No distance landscape returned. Re-run inference with return_distance_landscape=True')

        index_x = self.parameter_index(x_axis)
        index_y = self.parameter_index(y_axis)

        x = []
        y = []
        z = []
        for parameters, initial_conditions, distance in self.distance_landscape:
            all_values = list(parameters) + list(initial_conditions)
            x.append(all_values[index_x])
            y.append(all_values[index_y])
            z.append(distance)

        return x, y, z