Python布尔值:另一个列表或字典中列表的任何值

Python布尔值:另一个列表或字典中列表的任何值,python,boolean-expression,Python,Boolean Expression,我最近才发现自己在写这行代码,我不太喜欢这行代码: if ('upload' in request.POST) or ('delete' in request.POST): 我allready考虑了列表理解,如下所示: if [value for value in ['upload','delete'] if value in request.POST]: 这并不是更好。我非常简单的问题是:这可以简化吗?或者这只是为了显得太聪明?您可以使用“集合交点”更简洁地编写: if {'upload'

我最近才发现自己在写这行代码,我不太喜欢这行代码:

if ('upload' in request.POST) or ('delete' in request.POST):
我allready考虑了列表理解,如下所示:

if [value for value in ['upload','delete'] if value in request.POST]:

这并不是更好。我非常简单的问题是:这可以简化吗?或者这只是为了显得太聪明?

您可以使用“集合交点”更简洁地编写:

if {'upload', 'delete'} & set(request.POST):
或者更明确地说:

if {'upload', 'delete'}.intersection(request.POST):

简化使用
any()


我真的觉得你太聪明了。这个练习仍然很有趣,这就是我问这个问题的原因。当然,我会使用上面的线条,而不会感到头痛。
if any(value for value in ['upload','delete'] if value in request.POST):