4

我在哪里可以找到 Python 的正式语法,特别是 List Comprehension ?

4

1 回答 1

3

这是完整的语法(Python 2.7.3):

http://docs.python.org/reference/grammar.html

解析列表推导的一般语法涉及以下规则:

首先,解析整个表达式,它是一个atom

atom: ('(' [yield_expr|testlist_comp] ')' |
       '[' [listmaker] ']' |
       '{' [dictorsetmaker] '}' |
       '`' testlist1 '`' |
       NAME | NUMBER | STRING+)

其次,要解析理解的实际内容listmaker,以及它使用的规则:

listmaker: test ( list_for | (',' test)* [','] )
list_iter: list_for | list_if
list_for: 'for' exprlist 'in' testlist_safe [list_iter]
list_if: 'if' old_test [list_iter]

除此之外,您还可以返回一般的解析表达式,例如exprlist.

于 2012-10-26T05:53:12.193 回答