dict_list = [{'name': 'name1', 'value': True}, {'name': 'name2', 'value': True}, {'name': 'name3', 'value': 'hogehoge'}]
上記のようなdict要素を持っているlistがあるとして、'name'が'name3'のものがあるかをbool値で返したかったんだけれど、以下のようにany()
でやるのが一番楽っぽい気がする
any(dict_item['name'] == 'name3' for dict_item in dict_list)
# True
any(dict_item['name'] == 'name4' for dict_item in dict_list)
# False
他に楽な方法あるかな
ちなみにこういう感じで、dictのkeyが異なるようだと使えないので、listに型が異なるdict要素が入る場合はなんか別の方法でやる必要がある
dict_list = [{'wwww': 'name1', 'value': True}, {'namefaefe': 'nam2', 'value': True}, {'name': 'name3', 'value': 'hogehoge'}]
any(dict_item['name'] == 'name3' for dict_item in dict_list)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# File "<stdin>", line 1, in <genexpr>
# KeyError: 'name'
KeyErrorなので、辞書のgetメソッドを使うと大丈夫そうです
any(dict_item.get('name') == 'name3' for dict_item in dict_list)
# True