在 python 中,对于可迭代对象,可以构造许多单行迭代命令。
对于某些这样的迭代,需要使用 if 语句。
有时 if 语句和 for 语句的顺序很重要。假设我想找到 0 到 10 之间奇数的总和:
>>> sum(i if not i%2==0 for i in range(10))
SyntaxError: invalid syntax
>>> sum(i for i in range(10) if not i%2==0)
25
那些单行语句本质上不是很容易理解,但是我真的不明白为什么 if 语句必须出现在for 语句之后。使用前者不是更符合常识i if not i%2==0 for i in range(10)
吗?