2013-02-14 1 views

ответ

0

на основе ответа phant0m здесь это сравнение скорости в двух вариациях:

import timeit 
import operator 
setup = "data = [{'course_id': '8'}, {'course_id': '16'}]; import operator" 

print timeit.timeit("[x['course_id'] for x in data]", setup, number=1000000) 
# [x['course_id'] for x in data] 
# Result: 0.219176683582 

print timeit.timeit("map(operator.itemgetter('course_id'), data)", setup, number=1000000) 
# map(operator.itemgetter('course_id') 
# Result: 0.476915375646 

С более СЛОВАРЬ разница становится меньше:

# [x['course_id'] for x in data] 
# Result: 1.65939845357 

# map(operator.itemgetter('course_id') 
# Result: 1.85912657123 

Вполне вероятно, накладные расходы от вызовов функций.