ens*_*are 1 python python-datamodel
我的数据库当前返回一个dicts列表:
id_list = ({'id': '0c871320cf5111df87da000c29196d3d'},
{'id': '2eeeb9f4cf5111df87da000c29196d3d'},
{'id': '3b982384cf5111df87da000c29196d3d'},
{'id': '3f6f3fcecf5111df87da000c29196d3d'},
{'id': '44762370cf5111df87da000c29196d3d'},
{'id': '4ba0d294cf5111df87da000c29196d3d'})
Run Code Online (Sandbox Code Playgroud)
如何轻松检查给定的ID是否在此列表中?
谢谢.
这是一个单行:
if some_id in [d.get('id') for d in id_list]:
pass
Run Code Online (Sandbox Code Playgroud)
虽然不是很有效率.
编辑 - 更好的方法可能是:
if some_id in (d.get('id') for d in id_list):
pass
Run Code Online (Sandbox Code Playgroud)
这样,事先不会以全长生成列表.
如何轻松检查给定的ID是否在此列表中?
做一套
keys = set( d['id'] for d in id_list )
if some_value in keys
Run Code Online (Sandbox Code Playgroud)
不要问这是"有效"还是"最好".它涉及标准权衡.
构建集合需要时间.但是查找是即时的.
如果进行大量查找,则构建集合的成本将在每次查找时分摊.
如果您进行少量查找,那么构建该集合的成本可能高于ilike
{'id':some_value} in id_list.
如果你制作一个你的搜索ID字典,
search_dic = {'id': '0c871320cf5111df87da000c29196d3d'}
id_list = ({'id': '0c871320cf5111df87da000c29196d3d'},
{'id': '2eeeb9f4cf5111df87da000c29196d3d'},
{'id': '3b982384cf5111df87da000c29196d3d'},
{'id': '3f6f3fcecf5111df87da000c29196d3d'},
{'id': '44762370cf5111df87da000c29196d3d'},
{'id': '4ba0d294cf5111df87da000c29196d3d'})
if search_dic in id_list:
print 'yes'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
683 次 |
| 最近记录: |