bob*_*bsr 35 python dictionary list
以下列格式列出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}]
Run Code Online (Sandbox Code Playgroud)
以下不起作用:
if 'Test' in label[name]
'Test' in label.values()
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 57
您必须搜索列表中的所有词典; 使用any()生成器表达式:
any(d['name'] == 'Test' for d in label)
Run Code Online (Sandbox Code Playgroud)
这会短路; 返回True时,第一个找到匹配,或者返回False如果没有字典的匹配.
Eri*_*ric 37
你可能也会追随:
>>> 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}
Run Code Online (Sandbox Code Playgroud)
或者可能更清楚:
match = None
for l in label:
if l['name'] == 'Test':
match = l
break
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48478 次 |
| 最近记录: |