Python:如何实现多行列表推导式?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (182)

这个列表推导式共有145列:

memberdef_list = [elem for elem in from_cache(classname, 'memberdefs') if elem.argsstring != '[]' and 'std::string' in null2string(elem.vartype)]

如果我把它分成多行,该怎么实现?

提问于
用户回答回答于

Pep 8有点早于清单理解。我通常会在逻辑位置将这些拆分成多行:

memberdef_list = [elem for elem in from_cache(classname, 'memberdefs')
                  if elem.argsstring != '[]' and 
                     'std::string' in null2string(elem.vartype)]

不过,基本上,我一开始就放弃了所涉及的测试:

def stdstring_args(elem):
    if elem.argstring == '[]':
        return False
    return 'std::string' in null2string(elem.vartype)

memberdef_list = [elem for elem in from_cache(classname, 'memberdefs')
                  if stdstring_args(elem)]

扫码关注云+社区

领取腾讯云代金券