2

次の構造がある場合:

[
    {'id' : 100, 'name' : 'Bill'},
    {'id' : 100, 'name' : 'Dave'}
]

「名前」キーで要素を取得するにはどうすればよいですか。つまり、取得したいのですが、{'id' : 100, 'name' : 'Dave'}それぞれを繰り返して一致を確認する必要はありません。

これは可能ですか?

4

2 に答える 2

8

最初に、辞書のリストを「名前」をキーとして単一の辞書に変換できます。

data = {x['name']: x for x in original_data}

次に、次を使用します。

data['Dave']
data['Bill']

PS: 2.7 より古い Python の場合は、次を使用します。

data = dict((x['name'], x) for x in original_data)
于 2013-05-26T17:36:18.883 に答える
1

これはあなたが探しているものです

[x for x in a if x['name']=='Dave']

しかし、ここではリストを繰り返し処理し、各項目をチェックしています。実際には、リストを反復せずにそのようなことを行う方法はlistありません。これは であり、 ではないためmapです。

于 2013-05-26T17:40:16.357 に答える