я хочу изменить нижеВыньте все значения из списка отображений
[{'course_id': '8'}, {'course_id': '16'}]
в
['8','16']
я хочу изменить нижеВыньте все значения из списка отображений
[{'course_id': '8'}, {'course_id': '16'}]
в
['8','16']
Использование списка понимание:
[x['course_id'] for x in data]
или с помощью operator.itemgetter
[docs]:
map(itemgetter('course_id'), data)
на основе ответа 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
Вполне вероятно, накладные расходы от вызовов функций.