使用lambda减少列表

Sri*_*i K 2 python reduce lambda python-2.7

我需要写几个这样的函数.是否有更好的方法使用lambda在一行左右编写此函数.

def is_digital(offers):
    for offer in offers:
        digital = True if 'digital' in offer and offer['digital'] else False
        if digital:
            return True
    return False
Run Code Online (Sandbox Code Playgroud)

Mor*_*app 6

你可以用any它.

def is_digital(offers):
    return any(offer.get('digital') for offer in offers)
Run Code Online (Sandbox Code Playgroud)

或者如果你想删除完整的函数定义并只使用lambda(不是最好的主意),你可以这样做:

is_digital = lambda offers: any(offer.get('digital') for offer in offers)
Run Code Online (Sandbox Code Playgroud)

感谢jonrsharpe的评论提醒我这.get是一件事.