次の構造がある場合:
[
{'id' : 100, 'name' : 'Bill'},
{'id' : 100, 'name' : 'Dave'}
]
「名前」キーで要素を取得するにはどうすればよいですか。つまり、取得したいのですが、{'id' : 100, 'name' : 'Dave'}
それぞれを繰り返して一致を確認する必要はありません。
これは可能ですか?
次の構造がある場合:
[
{'id' : 100, 'name' : 'Bill'},
{'id' : 100, 'name' : 'Dave'}
]
「名前」キーで要素を取得するにはどうすればよいですか。つまり、取得したいのですが、{'id' : 100, 'name' : 'Dave'}
それぞれを繰り返して一致を確認する必要はありません。
これは可能ですか?
最初に、辞書のリストを「名前」をキーとして単一の辞書に変換できます。
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)
これはあなたが探しているものです
[x for x in a if x['name']=='Dave']
しかし、ここではリストを繰り返し処理し、各項目をチェックしています。実際には、リストを反復せずにそのようなことを行う方法はlist
ありません。これは であり、 ではないためmap
です。