我知道在 Python 列表推导中使用副作用不是一个好习惯。但我不明白为什么会发生以下情况:
In [66]: tmp = [1,2,3,4,5]; [tmp.remove(elem) for elem in tmp]
Out[66]: [None, None, None]
In [67]: tmp
Out[67]: [2, 4]
无论这是否是好的做法,列表理解的内部不应该做一些可预测的事情吗?如果以上是可以预测的,有人可以解释为什么只remove
发生了三个操作,为什么偶数条目是剩下的?