<[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