def takeBlock2(aList, row_list, col_list):
  """
    Take sublist given from rows specified by row_list and column specified by col_list from
    a doublely iterated list.
    The convention for the index of the rows and columns are the same as in slicing.
  """
  result = []
  for row in row_list:
    result.append(map(lambda column: aList[row][column], col_list))
  return result