我想在下面更改
[{'course_id': '8'}, {'course_id': '16'}]
到
['8','16']
答案 0 :(得分:3)
使用列表理解:
[x['course_id'] for x in data]
map(itemgetter('course_id'), data)
答案 1 :(得分: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
可能是函数调用的开销。