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或任何终端编辑器)来查看,那会很烦人。只是我的想法