如何在python字典列表中查找值?

有以下格式的python字典列表。您将如何进行搜索以找到特定名称?


label = [{'date': datetime.datetime(2013, 6, 17, 8, 56, 24, 2347),

          'name': 'Test',

          'pos': 6},

             {'date': datetime.datetime(2013, 6, 17, 8, 56, 24, 2347),

              'name': 'Name 2',

          'pos': 1}]

以下无效:


if 'Test'  in label[name]


'Test' in label.values()


慕丝7291255
浏览 347回答 2
2回答

慕尼黑8549860

您必须搜索列表中的所有词典;使用any()与发电机表达式:any(d['name'] == 'Test' for d in label)这会短路;返回True时,第一个找到匹配,或者返回False如果没有字典的匹配。

元芳怎么了

您可能还会追求:>>> match = next((l for l in label if l['name'] == 'Test'), None)>>> print match{'date': datetime.datetime(2013, 6, 17, 8, 56, 24, 2347), 'name': 'Test', 'pos': 6}或者可能更清楚:match = Nonefor l in label:    if l['name'] == 'Test':        match = l        break
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python