有以下格式的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
提交
取消