Вот несколько простых объяснений:
Истекшее время - время, затрачиваемое на процессор (ы) для выражения.
Пользовательское время настенное время. Время, которое вы как пользователь испытали.
Обычно оба раза относительно близки. Но они могут различаться в некоторых других ситуациях. Например:
Объединение itertools.groupby
с operator.itemgetter
для получения довольно хорошего решения:
from operator import itemgetter
from itertools import groupby
key = itemgetter('gender')
iter = groupby(sorted(people, key=key), key=key)
for gender, people in iter:
print '===', gender, '==='
for person in people:
print person