Python添加其他代码以内联循环?

Chr*_*ris 3 python python-2.7

以下是完全伪造的代码.但是,假设你需要做一些额外的副作用函数调用(用于调试日志)?你怎么把它放进去的?

[ i for i in range(10) ]
Run Code Online (Sandbox Code Playgroud)

或者总是必须重写为正常的循环?

list=[]
for i in range(10):
   otherStuff()
   list.append(i)
Run Code Online (Sandbox Code Playgroud)

在C中,有一个逗号运算符用于此类事情......

Ada*_*ith 6

显然,不要在列表推导中使用副作用.即使您完全理解它,它也会让下一个必须维护它的人难以理解您的代码.列表推导是创建列表的简洁方式,而不是调用函数n时间的方法.

有关进一步阅读,请参阅问题是Pythonic将列表推导用于副作用吗?

换句话说,您应该使用显式for循环.