我刚刚发现自己写这行代码,这是我不喜欢太多:Python的布尔:在另一个列表或字典列表中的任意值
if ('upload' in request.POST) or ('delete' in request.POST):
我媒体链接想过列表理解,这看起来像这样:
if [value for value in ['upload','delete'] if value in request.POST]:
这不是更好。我非常简单的问题是:这可以简化吗?或者这只是试图太聪明?
我刚刚发现自己写这行代码,这是我不喜欢太多:Python的布尔:在另一个列表或字典列表中的任意值
if ('upload' in request.POST) or ('delete' in request.POST):
我媒体链接想过列表理解,这看起来像这样:
if [value for value in ['upload','delete'] if value in request.POST]:
这不是更好。我非常简单的问题是:这可以简化吗?或者这只是试图太聪明?
你可以更简洁地使用交集写:
if {'upload', 'delete'} & set(request.POST):
或者更明确:
if {'upload', 'delete'}.intersection(request.POST):
+1我们需要更多地使用套餐。 – delnan 2012-04-08 19:28:26
简化使用any()
。
if any(value for value in ['upload','delete'] if value in request.POST):
我确实认为你想要变得太聪明。演习仍然很有趣。 – 2012-04-08 19:34:08
这正是我问这个问题的原因。当然,我确实使用上面这样的线条而不会感到头痛。 – marue 2012-04-08 19:40:08