message = ['Сова: Улететь', 'Сова: Найти мудрое решение', 'Ослик Иа: Громко кричать', 'Винни-Пух: Уйти в гости', 'Винни-Пух: Залезть на дерево']
d = {}
for s in message:
k, w = s.split(': ')
d[k] = d[k] + ', ' + w if k in d else w
print(['%s: %s' % (k, w) for k, w in d.items()])
for s in message:
# каждый элемент строки разбиваем на условно ключ k и значение w
k, w = s.split(': ')
# если k есть в словаре d, то в d[k] дописывает через запятую значение w; если нет - инициализируем d[k] значением w
d[k] = d[k] + ', ' + w if k in d else w
# объединяем ключи и значения из словаря d через ': '
print(['%s: %s' % (k, w) for k, w in d.items()])
print(', '.join(['%s: %s' % (k, w) for k, w in d.items()]))
# что эквивалентно примерно:
message = []
for k, w in d.items():
message.append(k + ': ' + w)
print(', '. join(message))