Here's an answer that doesn't use generator expressions and uses replace rather than strip.
>>> s = 'A - 13, B - 14, C - 29, M - 99'
>>> d = {}
>>> for pair in s.replace(' ','').split(','):
... k, v = pair.split('-')
... d[k] = int(v)
...
>>> d
{'A': 13, 'C': 29, 'B': 14, 'M': 99}