复杂的嵌套列表推导,PEP8

时间:2016-02-25 02:55:15

标签: python coding-style list-comprehension

让我们假设我有这样的代码:

settings.py

但大多数PEP8例子都说我应该这样写:

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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