<[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> (As an aside, may I point out that Python In A Nutshell states on page
> 46 "The result of S*n or n*S is the concatenation of n copies of S".
It would be more exact to say that S*n is [] extended with S n times,
which makes it clear that 0*S == S*0 == [] and which avoids the apparently
misleading word 'copy'. I presume the C implementation is the equivalent
of
def __mul__(inlist, times):
result = []
for i in range(times):
result.extend(inlist)
return result
Or one could say that the result *is the same as* (not *is*) the
concatenation of n *shallow* copies of S. 'Shallow' means that each copy
of S would have the same *content* (at the id level) as S, so that the
result would contain the content of S n times, which is to say, when len(S)
== 1, n slots with each slot bound to the *identical* content of S.
When the content is immutable, the identicaliy does not matter. When it
*is* mutable, it does.
> It might be well to put a warning in a future edition that this is not
> strictly the case.)
Did you mean anything else by 'not strictly the case'?
Terry Jan Reedy
--
http://mail.python.org/mailman/listinfo/python-list