2016-04-19 15 views
1

は、私は辞書の次のリストを持っているとします辞書は

database = [{'Job title': 'painter', 'Email address': '[email protected]', 'Last name': 'Wright', 'First name': 'James', 'Company': 'Swift'}, 
{'Job title': 'plumber', 'Email address': '[email protected]', 'Last name': 'Bright', 'First name': 'James', 'Company': 'ABD Plumbing'}, 
{'Job title': 'brick layer', 'Email address': '[email protected]', 'Last name': 'Smith', 'First name': 'John', 'Company': 'Bricky brick'}] 

私は彼らの最初の名前を与えられた人物についての情報を印刷することができますので、私が、(私はこれを変更します以下のコードを入力しています)変数を使用して、最後の名前、会社名、役職名などを検索します。私は2つの最初の名前の同じである、すなわち、ジェームズを持っているよう

print(next(item for item in database if item['First name'] == 'James')) 

問題が発生します。データベース内のすべてのJamesの情報を出力するようにコードを調整するにはどうすればよいですか?

+3

'' – vaultah

+2

)(次を削除し、[アイテム[「最初の名前」] ==「ジェームズは」場合は、データベース内のアイテムのアイテム]が... – Dan

+0

vaultahの答えは十分にクールです、ここでもう一つはです!フィルタ(lambda x:x ['ファーストネーム'] == 'ジェームズ'、データベース)、pythonはあなたのためにイテレータ/ベクトルを処理しますが、 'for'はほとんどの状況で十分です –

答えて

0

next()を削除します。

print([item for item in database if item['First name'] == 'James'])