From 80adba6873a9d732108155c26c21a34f373bceb8 Mon Sep 17 00:00:00 2001 From: Armin Rigo Date: Thu, 4 Nov 2004 11:29:09 +0000 Subject: [PATCH] Mistakes in the "sequence types" page: * explanation for example with lists of lists made confusing use of the word "contains" to mean "is built out of". * wrong formula for slices with step. Is it ok to use LaTeX formulas (which become images in the html document)? This version needs one because it's based on a fraction. Just writing "\code{(j-i)/k}" here would be ambiguous because it looks like a rounding-down-to-the-previous-integer division, which is not what we need here. Of course we could write "\code{float(j-i)/k}" but it just looks confusing. --- Doc/lib/libstdtypes.tex | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Doc/lib/libstdtypes.tex b/Doc/lib/libstdtypes.tex index f8eba387f4..c523d46f78 100644 --- a/Doc/lib/libstdtypes.tex +++ b/Doc/lib/libstdtypes.tex @@ -501,10 +501,11 @@ In Python 2.3 and beyond, \var{x} may be a string of any length. [[3], [3], [3]] \end{verbatim} - What has happened is that \code{lists} is a list containing three - copies of the list \code{[[]]} (a one-element list containing an - empty list), but the contained list is shared by each copy. You can - create a list of different lists this way: + What has happened is that \code{[[]]} is a one-element list containing + an empty list, so all three elements of \code{[[]] * 3} are (pointers to) + this single empty list. Modifying any of the elements of \code{lists} + modifies this single list. You can create a list of different lists this + way: \begin{verbatim} >>> lists = [[] for i in range(3)] @@ -529,8 +530,10 @@ In Python 2.3 and beyond, \var{x} may be a string of any length. \item[(5)] The slice of \var{s} from \var{i} to \var{j} with step \var{k} is defined as the sequence of items with index - \code{\var{x} = \var{i} + \var{n}*\var{k}} such that \code{0} - \code{<=} \var{n} \code{<} \code{abs(i-j)}. If \var{i} or \var{j} + \code{\var{x} = \var{i} + \var{n}*\var{k}} such that + $0 \leq n < \frac{j-i}{k}$. In other words, the indices + are \code{i}, \code{i+k}, \code{i+2*k}, \code{i+3*k} and so on, stopping when + \var{j} is reached (but never including \var{j}). If \var{i} or \var{j} is greater than \code{len(\var{s})}, use \code{len(\var{s})}. If \var{i} or \var{j} are omitted then they become ``end'' values (which end depends on the sign of \var{k}). Note, \var{k} cannot -- 2.50.0