events
Считают, что здесь имеет около 48000 словарных объектов:python dict/list comprehension: почему он медленнее, чем для цикла?
keyed_events = { gid: [ r for r in events if r['gid'] == gid ] for gid in gidlist }
составляет около 4x медленнее, чем:
keyed_events = {}
for event in events:
gid = event['gid']
if gid not in keyed_events:
keyed_events[gid] = []
keyed_events[gid].append(event)
хотя первый выглядит более эффективным. Почему он медленнее? Итерация через events
каждый проход понимания диктата?
Может '[г для г в событиях, если г [ 'GID'] == GID]' заменить 'filter'? Не уверен, что это будет такая же медлительность –
Да: 'keyed_events = {gid: filter (lambda x: x ['gid'] == gid, events) для gid в gidlist}' дает вам такое же медленное время выполнения – Wells
At хотя это «выглядит» * более * эффективным: D –