On Jan 29, 6:22 pm, iMath <redstone-c...@163.com> wrote:
> 在 2013年1月29日星期二UTC+8下午9时21分16秒,iMath写道:
>
> > why [os.path.join(r'E:\Python', name) for name in []] returns [] ? please 
> > explain it in detail !
> >>> [os.path.join(r'E:\Python', name) for name in []]
>
> []

[Small algebra lesson]
In algebra there is the concept of identity and absorbent.
For example, 1 is the identity for multiply and 0 is the absorbent.
ie for all x: 1 * x = x
and 0 * x = 0
[end algebra lesson]

In the case of lists, [] is an identity for ++ but behaves like an
absorbent for comprehensions.
Modern terminology for 'absorbent' is 'zero-element'. I personally
find the older terminology more useful.

Others have pointed out why operationally [] behaves like an absorbent
in comprehensions.
Ive seen even experienced programmers trip up on this so I believe its
good to know it as an algebraic law in addition to the operational
explanation.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to