Comment effectuer une itération sur les éléments d'une carte en python

Donné une chaîne s, je veux savoir combien de fois chaque caractère de la chaîne se produit. Voici le code:

def main() :
  while True :
    try :
      line=raw_input('Enter a string: ')
    except EOFError :
      break;
    mp={};

    for i in range(len(line)) :
      if line[i] in mp :
        mp[line[i]] += 1;
      else :
        mp[line[i]] = 1;

    for i in range(len(line)) :
      print line[i],': ',mp[line[i]];

if __name__ == '__main__' :
  main();

Lorsque j'exécute ce code et que je rentre abbba, j'obtiens:

a : 2
b : 3
b : 3
b : 3
a : 2

Je voudrais seulement:

a : 2
b : 3

Je comprends pourquoi ce qui se passe, mais comme je suis nouveau sur python, je ne connais pas d'autres moyens pour effectuer une itération sur les éléments d'une carte. Quelqu'un pourrait-il me dire comment faire cela? Merci à l'avance.