我需要检查similar
结果中是否存在exact
结果的ID,然后排除该结果,我只是不确定最佳方法。< / p>
我假设我必须找到一种方法来遍历两个列表,然后尝试if similar.ID != exact.ID
之类的内容并将其传递给变量以传递给Jinja2模板。
正在使用SQL-Alchemy完成查询;
exact_assets = Motor.query.filter_by(**filter_data).all()
similar_assets = Motor.query.filter_by(**similar_filter_data).all()
# Something like
# for similar_asset, exact_asset in similar_assets, exact_assets:
# if similiar_asset.id == asset.id:
# similar_asset.pop(id)
我知道语法不正确,甚至不能使用列表或词典(?),但希望它能够表达我想在这里实现的目标。
答案 0 :(得分:1)
首先创建一个要与之比较的键列表(假设相等意味着代码中的id相同)
exact_assets_ids = [item.id for item in exact_assets]
然后过滤您的类似资产
final_assets = [item for item in similar_assets if item.id in exact_assets_ids]
更新:刚刚注意到它是交集:)
final_set = list(set(similar_assets) or set(exact_assets))
但在这种情况下,您应该实施Motor.__eq__