Python 复杂嵌套列表理解,PEP8

Python 复杂嵌套列表理解,PEP8,python,coding-style,list-comprehension,Python,Coding Style,List Comprehension,假设我有这样的代码: 问题=[{ “标题”:问题标题, “票数”:q.获得总票数(), “选择”:[{ “头衔”:o.头衔, “投票”:赞成票 }对于q中的o。获取_选项() }对于队列中的q。获取_问题()] 但大多数PEP8示例都说我应该这样写: questions=[{“title”:q.title, “票数”:q.获得总票数(), “选项”:[{“标题”:o.title,“投票”:o.vows} 对于q中的o。获取_options()]} 对于队列中的q。获取_问题()] 第二个版本

假设我有这样的代码:

问题=[{
“标题”:问题标题,
“票数”:q.获得总票数(),
“选择”:[{
“头衔”:o.头衔,
“投票”:赞成票
}对于q中的o。获取_选项()
}对于队列中的q。获取_问题()]
但大多数PEP8示例都说我应该这样写:

questions=[{“title”:q.title,
“票数”:q.获得总票数(),
“选项”:[{“标题”:o.title,“投票”:o.vows}
对于q中的o。获取_options()]}
对于队列中的q。获取_问题()]
第二个版本更可取/更可读吗?或者也许列表理解不是最好的方法,我应该简单地做

问题=[]
对于队列中的q。获取问题():
选项=[]
对于q中的o。获取选项()
options.append({“title”:o.title,“voates”:o.voates})
附加({“标题”:q.title,
“票数”:q.获得总票数(),
“选项”:选项})

我会这样写,我认为这样更可读:

questions = [{"title": q.title,
              "votes": q.get_total_votes(),
              "options": [{"title": o.title, "votes": o.votes}
                            for o in q.get_options()]}
            for q in queue.get_questions()]

我会这样写,我觉得更可读:

questions = [{"title": q.title,
              "votes": q.get_total_votes(),
              "options": [{"title": o.title, "votes": o.votes}
                            for o in q.get_options()]}
            for q in queue.get_questions()]

PEP8方法是最好的,不仅可读性好,而且将来您可以很容易地修改它。第一种方法也是可读的,但不是很好,因为不是所有的键都排列得很好,你必须用tab键嵌套选项键,而且如果你用一个较小的终端(如果你使用vim或任何终端编辑器)来查看,那会很烦人。不过这只是我的想法。

PEP8方法是最好的,不仅可读性好,而且将来你可以很容易地修改它。第一种方法也是可读的,但不是很好,因为不是所有的键都排列得很好,你必须用tab键嵌套选项键,而且如果你用一个较小的终端(如果你使用vim或任何终端编辑器)来查看,那会很烦人。只是我的想法