Не нужно заботиться о строках с регулярным выражением:
import re
pat = re.compile('([a-z]+)\s*:\s*(\d+(?:\s*,\s*\d+)*)')
with open('rara.txt') as f:
dic = dict((ma.group(1),map(int,ma.group(2).split(','))) for ma in pat.finditer(f.read()))
print dic
Протестировано со следующим текстом в тексте файла 'rara.txt':
lasker : 22,45, 77,101 kramnik:888 ,22,15,105 kramniu :45,22, 3433,105 6765433 laskooo:22,45, 77 , 101 kooni:
45, 78 45kramndde:45,334 ,15,105 tasku: 22,45 ,7,101 krammma: 1105oberon glomo:22, 3478,77 ,101 draumnik:45,105
toyku:22,45,7,101 solo
ytrmmma:1105oberon radabidadada lftyker:22,3478,7,101
Результат
{'laskooo': [22, 45, 77, 101], 'tasku': [22, 45, 7, 101], 'krammma': [1105], 'glomo': [22, 3478, 77, 101], 'kramniu': [45, 22, 3433, 105], 'kooni': [45, 78], 'lftyker': [22, 3478, 7, 101], 'toyku': [22, 45, 7, 101], 'kramnik': [888, 22, 15, 105], 'draumnik': [45, 105], 'ytrmmma': [1105], 'lasker': [22, 45, 77, 101], 'kramndde': [45, 334, 15, 105]}
РЕДАКТИРОВАТЬ: я изменил шаблон регулярного выражения (добавлено \ s *) и текст файла 'rara.txt'