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()])
D = [0] * n
throw $e;
Здесь точность не утеряна, а цифр то 7, как так?
Транзакции обеспечивают защиту данных на логическом уровне, гарантируя, что выполнится все или ничего. Т.е. например, если вы в рамках транзакции захотели перевести некую валюту от пользователя А пользователю Б, для чего уменьшили на 100 единиц баланс А в первом запросе и потом увеличили баланс Б во втором. Без транзакции отключение питания может попасть ровно между запросами, и нарушится логическая целостность.