我只是偶然发现了python语法中的一个缺陷 - 否则我会遗漏一些东西.
看到这个:
[x for x in range(30) if x % 2 == 0]
Run Code Online (Sandbox Code Playgroud)
但这是一个语法错误:
[x for x in range(30) if x % 2 == 0 else 5]
Run Code Online (Sandbox Code Playgroud)
如果你有一个else条款,你必须写:
[x if x % 2 == 0 else 5 for x in range (30)]
Run Code Online (Sandbox Code Playgroud)
但这是一个语法错误:
[x if x %2 == 0 for x in range(30)]
Run Code Online (Sandbox Code Playgroud)
我错过了什么?为什么这么不一致?