Python 3.x 使用python集成for和if循环

Python 3.x 使用python集成for和if循环,python-3.x,Python 3.x,我想将for和if循环组合成一行: for temp in payment.find({'courseid':cid}): is_purchase = True if cid == temp['courseid'] and ids == temp['userid'] else False 我喜欢这样: is_purchase = True if cid == temp['courseid'] and ids == temp['userid'] else False for temp

我想将for和if循环组合成一行:

for temp in payment.find({'courseid':cid}):
    is_purchase = True if cid == temp['courseid']  and ids == temp['userid'] else False
我喜欢这样:

is_purchase = True if cid == temp['courseid']  and ids == temp['userid'] else False for temp in payment.find({'courseid':cid})

# and

is_purchase = for temp in payment.find({'courseid':cid}) True if cid == temp['courseid']  and ids == temp['userid'] else False

但它显示了一个错误告诉我正确的答案…

似乎您忘记了方括号用于列表理解。您可以使用
any()
检查这些值中是否有
True

is_purchase = any(
    [temp['courseid'] and ids == temp['userid'] for temp in payment.find({'courseid':cid})]
)

与代码yayati Sule共享错误stacktrace:如果付款中的temp的[temp['courseid']和id==temp['userid'],我就不会得到errorTrue。find({'courseid':cid})else False