这个例子似乎有问题:
item = [x**2 if x %2 == 0 for x in range(10)]
Run Code Online (Sandbox Code Playgroud)
但我可以这样写:
item = [x**2 if x % 2 == 0 else x**3 for x in range(10)]
Run Code Online (Sandbox Code Playgroud)
或者:
item = [x**2 for x in range(10) if x % 2 == 0]
Run Code Online (Sandbox Code Playgroud)
这里的顺序有多重要,为什么在第一个例子中我不能在没有 'else' 的情况下使用 'if'?