【问题标题】:Simplifying Lists [closed]简化列表[关闭]
【发布时间】:2012-11-26 07:23:47
【问题描述】:

如何简化此代码?就是这个问题。

    stat_keys.append(self.request.get("stat_one"))
    stat_keys.append(self.request.get("stat_two"))
    stat_keys.append(self.request.get("stat_three"))
    stat_keys.append(self.request.get("stat_four"))

【问题讨论】:

    标签: python simplify simplification


    【解决方案1】:
    stat_keys += [self.request.get(k) for k in ('stat_one', 'stat_two', 'stat_three', 'stat_four')]
    

    stat_keys += map(self.request.get, ('stat_one', 'stat_two', 'stat_three', 'stat_four')))
    

    map(stat_keys.append, map(self.request.get, ('stat_one', 'stat_two', 'stat_three', 'stat_four')))
    

    不过,我建议第一个。

    【讨论】:

      【解决方案2】:

      在不知道任何变量是什么的情况下很难回答,但是这个怎么样:

      for stat in ('stat_one', 'stat_two', 'stat_three', 'stat_four'):
          stat_keys.append(self.request.get(stat))
      

      或者,使用生成器表达式:

      [stat_keys.append(self.request.get(stat)) for stat in ('stat_one', 'stat_two', 'stat_three', 'stat_four')]
      

      【讨论】:

        【解决方案3】:

        使用生成器表达式更改为.extend()

        stat_keys.extend(self.request.get(stat) for stat in('stat_one', 'stat_two', 'stat_three', 'stat_four'))
        

        【讨论】:

        • 假设stat_keys支持extend,从问题中的信息我们不知道。
        【解决方案4】:
        s_list = [ "stat_one", "stat_two", "stat_three", "stat_four" ]
        [ stat_keys.append(self.request.get(s)) for s in s_list ]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-11-06
          • 2018-12-01
          • 2021-04-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多