Ala*_*ACK 2 python syntax generator python-3.x
# why is the following invalid
x = (k, v for k, v in some_dict.items())
# but if we wrap the expression part in parentheses it works
x = ((k, v) for k, v in some_dict.items())
Run Code Online (Sandbox Code Playgroud)
我查看了文档并且似乎没有找到任何相关内容?什么可能使解析器混淆不允许语法?尽管工作更复杂:
# k, v somehow confuses the parser but this doesnt???
x = ('%s:%s:%s' % (k, v, k) for k, v in some_dict.items())
Run Code Online (Sandbox Code Playgroud)
那么我们怎么%s:%s:%s % (k, v, k)也不需要用周围的parantheses 包裹呢?
看看x = (k, v for k, v in some_dict.items()):
x = (k, v for k, v in some_dict.items())
x = ((k, v) for k, v in some_dict.items())
x = (k, (v for k, v in some_dict.items()))
Run Code Online (Sandbox Code Playgroud)
需要括号来消除歧义.
x = ('%s:%s:%s' % (k, v, k) for k, v in some_dict.items()) 也需要括号:
x = ('%s:%s:%s' % k, v, k for k, v in some_dict.items())
x = ('%s:%s:%s' % k, (v, k) for k, v in some_dict.items())
x = ('%s:%s:%s' % (k, v, k) for k, v in some_dict.items())
Run Code Online (Sandbox Code Playgroud)
只是碰巧你已经有足够的括号来解决那里的歧义,使其能够以预期的方式运行.
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |