def create_guess_char_indices_dict(guesses):
    """
    Loops over each guess, and then loops over each character in the guess. This method finds the index of the character
    in the guess and then appends it to a list of indices which are set as the value of the character (key) in the
    result map. Each non-underscore character in the guess is a key, and each key has a list of indices as its value.
    :param guesses: a string representing a guess. e.g. __c__ represents a guess with c in the 2nd index position.
    :return: a dictionary containing chars as keys and a list of indices from the guess as the value of each key
    """
    char_indices = dict()
    for guess in guesses:
        for i in range(len(guess)):
            char = guess[i]
            if not char == '_':
                if char in char_indices.keys():
                    char_indices[char].append(i)
                else:
                    char_indices[char] = [i]
    return char_indices