将函数转换为单行列表理解

Eri*_*ver 0 python list-comprehension

是否有可能将此功能,列表理解组合转换为单个列表理解(因此keep不需要)?

def keep(list, i, big):
    for small in list[i+1:]:
        if 0 == big % small:
            return False
    return True

multiples[:] = [n for i,n in enumerate(multiples) if keep(multiples, i, n)]
Run Code Online (Sandbox Code Playgroud)

rec*_*ive 6

我觉得这就是:

multiples[:] = [n for i,n in enumerate(multiples) 
                       if all(n % small for small in multiples[i+1:])] 
Run Code Online (Sandbox Code Playgroud)