有以下格式的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()
2 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
您必须搜索列表中的所有词典;使用any()
与发电机表达式:
any(d['name'] == 'Test' for d in label)
这会短路;返回True
时,第一个找到匹配,或者返回False
如果没有字典的匹配。
元芳怎么了
TA贡献1798条经验 获得超7个赞
您可能还会追求:
>>> 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 = None
for l in label:
if l['name'] == 'Test':
match = l
break
添加回答
举报
0/150
提交
取消