1

以下を変更したい

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

['8','16']
4

2 に答える 2

3

リスト内包表記の使用:

[x['course_id'] for x in data]

またはoperator.itemgetter[ドキュメント]を使用:

map(itemgetter('course_id'), data)
于 2013-02-14T10:36:26.517 に答える
0

phant0mの回答に基づいて、2つのバリエーションの速度を比較します。

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

関数呼び出しによるオーバーヘッドの可能性があります。

于 2013-02-14T10:50:17.060 に答える