我有一个Peewee的table.select()查询结果,假设我想删除结果列表的一部分(QuerySelect)怎么做?或从查询中排除某些元素?
#Edited
result = users.select();
for element in result:
for name in list:
if(element.name == name):
removeThisElement()
我想从查询结果中排除名称列表
答案 0 :(得分:2)
正如coleifer所说,既然您正在使用小便,请使用SQL来执行此操作,因此根据您的上一次编辑,解决方案应该是:
result = User.select().where(User.name.not_in(a_list_of_names))
虽然列表理解也有效:
result = [user for user in Users.select() if user.name not in a_list_of_names]
文档:Query.where
答案 1 :(得分:1)
最好也是最恰当的方法是使用SQL来执行此操作:
User.select().where(User.name != 'myname')
然后对结果列表进行预过滤。
如果您想过滤出名称的列表,那么您可以编写
names_to_exclude = ['lord63', 'Newbie', 'etc']
users = User.select().where(User.name.not_in(names_to_exclude))