【问题标题】:Optimization of multple if condition in python [duplicate]python中多个if条件的优化[重复]
【发布时间】:2015-03-30 19:32:42
【问题描述】:

我有一个像这样的python条件语句

if 'small_cover' not in request.POST or 'medium_cover' not in request.POST or 'large_cover' not in request.POST:
    # do somethinf here.

还有比这更短的方法吗?

【问题讨论】:

  • 什么框架提供request.POST对象?例如,这是 Django 吗?
  • if not all(thing in request.POST for thing in ('small_cover', ...)):?
  • 是的,它是 POST 对象的字典
  • @wrufesh:不,它是一个像字典一样的对象。这在很大程度上取决于我可以给你的答案是什么类型的对象。
  • 如果它只是一本字典,这个问题是重复的。但是,使用真正的字典执行此操作的最佳方法可能不是使用 Werkzeug MultiDict 对象的最佳方法。

标签: python


【解决方案1】:
if not all(x in request.POST for x in ('small_cover', 'medium_cover', 'large_cover')):

或者更简洁:

if not all(x+'_cover' in request.POST for x in ('small', 'medium', 'large')):

【讨论】:

    【解决方案2】:

    使用any,如果我们发现这三个项目中的any不在request.POST中,就会短路

    if  any(x not in request.POST for x in ('small_cover',  'medium_cover','large_cover')):
    

    【讨论】:

      猜你喜欢
      • 2017-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 2012-09-02
      相关资源
      最近更新 更多