不知道这是否可能,但我正在使用sqlalchemy和我的查询返回所有的项目作为对象。我想搜索该对象列表中的项目,但不必每次都执行for循环。我可以搜索没有for循环的对象列表中的项目吗?
这是我怎么知道现在目前做:
for x in objects_from_query:
print x.name, ' - ', x.age
,如果我想看看我的数据名为我的列表“鲍勃”的用户,我将不得不:
for x in objects_from_query:
if x.name == 'bob':
print 'bob exists!'
因为我必须做很多事情,我想知道是否有更快的方法来查找bob是否存在,而无需每次都执行for循环?通常使用列表时,我会执行诸如objects_from_query.index(“bob”)之类的操作,但是在使用普通列表而不是普通列表时,是否有类似的东西?
你为什么不得到SQLAlchemy的查询直接让它只返回你感兴趣的对象? – 2012-07-21 21:34:22
@DanielRoseman我想这与我的例子没有任何意义,但我真正的疑问是拉取与单个用户相关的数据,我试图交叉引用他们输入的数据与我已有的数据。我认为与SQLAlchemy相比,我的大型查询会比较难以获取当前所有数据并进行比较。我可能是错的,所以我会测试你的想法,这听起来很有趣。 – Lostsoul 2012-07-21 21:37:49
“任何应用程序的经验法则都是让数据库完成它的工作:过滤,排序和连接。”检查此答案:http://www.stackoverflow.com/questions/2324050/is-it-better-to-filter-a-resultset-using-a-where-clause-or-using-application-cod – hectorg87 2012-07-21 21:42:28