を使用して、リスト内包表記でリストをサブセットに私はこのようになりますどのサブセットたい辞書の大規模なリストを持っている:どのように別のリスト
first_list = [{'name':'James','gender':'M','address':'California'},{'name':'Tom','gender':'M','address':'California'},
{'name':'Jane','gender':'F','address':'Utah'},
{'name':'Kim','gender':'F','address':'Wisconsin'},
{'name':'Ron','gender':'M','address':'Montana'}]
私は名前で、別のリストを持っている:
second_list = ['James', 'Tom']
最初のリストの '名前'が2番目のリストの一部ではなく、単にJamesとTomの辞書を削除しているリストを取得したいとします。
[{'name':'Jane','gender':'F','address':'Utah'},
{'name':'Kim','gender':'F','address':'Wisconsin'},
{'name':'Ron','gender':'M','address':'Montana'}]
私は、リストの内包表記を使用してみましたが、私は、これは異なるリストで動作するとは思わない:
third_list = [x for x in first_list if x['name'] != (y for y in second_list)]
これは動作しません、最初のリストと同じリストを返します。私の構文は間違っていますか?
'(second_listにおけるyのY)'ジェネレータオブジェクトを作成します。これを他のものと比較すると 'False'となります。代わりに 'x ['name']がsecond_listにない場合は、代わりに' 'name ''を使用することができます。 –