Python 从映射列表中取出所有值

Python 从映射列表中取出所有值,python,list,map,Python,List,Map,我想在下面换衣服 [{'course_id': '8'}, {'course_id': '16'}] 到 使用列表理解: [x['course_id'] for x in data] 或使用: 根据Phantom的回答,这里是两种变化的速度比较: import timeit import operator setup = "data = [{'course_id': '8'}, {'course_id': '16'}]; import operator" print timeit.time

我想在下面换衣服

[{'course_id': '8'}, {'course_id': '16'}]


使用列表理解:

[x['course_id'] for x in data]
或使用:


根据Phantom的回答,这里是两种变化的速度比较:

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
这可能是函数调用的开销

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