0
呼吁在我目前的代码库,我有以下行,其中to_remove
是一组重复功能使用列表理解Python中
[to_remove.update(b) for b in some_set if all(a <= b for a in some_dict)]
虽然它的工作原理,它困扰我一点点,因为它创建的列表None
未使用。它被认为不是标准吗?有没有更好的方法来做到这一点?
更新:
既然已经指出,列表理解仅用于侧的效果并不好,我已经改变了我的代码
to_remove.update(itertools.chain.from_iterable(
b for b in some_set if all(a <= b for a in some_dict))
副作用不寻常和意想不到的,这使他们成为一个非常糟糕的主意任何令人困惑的事情都应该避免,并且有更直接的实施。 –
一个普通的for循环和一个if语句? –
你必须这样做'to_remove.update([b for some_set如果全部(a <= b for a some_dict)])' – Elmex80s