def create_step_dict(step_data):
    """
    Calculate a dictionary, indexed by step, to lists of its precursor steps.
    :param step_data: the step data as parsed by extract_step_data
    :return: a dictionary with steps as keys and a list of requirements

    >>> create_step_dict([('A', 'C'), ('F', 'C'), ('B', 'A'), ('D', 'A'), ('E', 'B'), ('E', 'D'), ('E', 'F')])
    {'A': ['C'], 'F': ['C'], 'B': ['A'], 'D': ['A'], 'E': ['B', 'D', 'F']}
    """
    step_dict = {}
    for step, requirement in step_data:
        step_dict.setdefault(step, [])
        step_dict[step].append(requirement)
    return step_dict