Python的样式多行列表综合[复制](Pythonic Style for Multiline L

2019-06-28 05:01发布

可能重复:
行继续在Python列表内涵或发电机表达式

什么是最Python的方式来写一个长长的清单理解? 这个列表解析出来的145列:

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

它应该如何看,如果我打破它成多行? 我找不到任何关于这在Python风格指南什么。

Answer 1:

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)]


文章来源: Pythonic Style for Multiline List Comprehension [duplicate]