mar*_*rue 0 python boolean-expression
我刚刚发现自己编写了这行代码,我不太喜欢这样做:
if ('upload' in request.POST) or ('delete' in request.POST):
Run Code Online (Sandbox Code Playgroud)
我已经考虑过列表理解,它看起来像这样:
if [value for value in ['upload','delete'] if value in request.POST]:
Run Code Online (Sandbox Code Playgroud)
哪个不是更好.我非常简单的问题是:这可以简化吗?或者这只是想要太聪明?
您可以使用set intersection更简洁地编写它:
if {'upload', 'delete'} & set(request.POST):
Run Code Online (Sandbox Code Playgroud)
或者更明确地说:
if {'upload', 'delete'}.intersection(request.POST):
Run Code Online (Sandbox Code Playgroud)