Mastermind: Evaluating the guess
Most of the solutions provided so far is hard to read, and you need to really think before you understand what is happening, so I would like to propose an alternative approach as a response to a more straightforward algorithm:

def evaluate_guess(secret_code, guesses):

    score = []
    remaining_secrets = []
    remaining_guesses = []

    # Check exact matches
    for guess, secret in zip(secret_code, guesses):
        if guess == secret:
            score.append(1)

        else:
            remaining_guesses.append(guess)
            remaining_secrets.append(secret)

    # Check wrong placing
    for guess in remaining_guesses:

        if guess in remaining_secrets:
            score.append(0)
            remaining_secrets.remove(guess)

    return score


The only magic in this code is the joining of secret_code and guesses using zip which joins them index for index. This allows for, in my opinion, code that is easier to understand instead of list comprehensions, ifilters, index searching, sorting, sliceing and other stuff.