Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!news.linkpendium.com!news.linkpendium.com!panix!gordon From: John Gordon Newsgroups: comp.lang.python Subject: Re: Strange behavior for a 2D list Date: Thu, 18 Apr 2013 21:13:34 +0000 (UTC) Organization: PANIX Public Access Internet and UNIX, NYC Lines: 41 Message-ID: References: NNTP-Posting-Host: panix2.panix.com X-Trace: reader1.panix.com 1366319614 26989 166.84.1.2 (18 Apr 2013 21:13:34 GMT) X-Complaints-To: abuse@panix.com NNTP-Posting-Date: Thu, 18 Apr 2013 21:13:34 +0000 (UTC) User-Agent: nn/6.7.3 Xref: csiph.com comp.lang.python:43860 In "Robrecht W. Uyttenhove" writes: > I tried out the following code: > y=[range(0,7),range(7,14),range(14,21),range(21,28),range(28,35)] > >>> y > [[0, 1, 2, 3, 4, 5, 6], > [7, 8, 9, 10, 11, 12, 13], > [14, 15, 16, 17, 18, 19, 20], > [21, 22, 23, 24, 25, 26, 27], > [28, 29, 30, 31, 32, 33, 34]] > >>> y[1:5:2][::3] > [[7, 8, 9, 10, 11, 12, 13]] > I expected the 2D list: > [[ 7, 10, 13], > [21, 24, 27]] > Any ideas? y is just a list. It happens to be a list of lists, but that doesn't make it a "2D" list. It's an important distinction. y[1:5:2] is the contents of y, starting at the second element and selecting every second element after that: [[7, 8, 9, 10, 11, 12, 13], [21, 22, 23, 24, 25, 26, 27]] y[1:5:2][::3] is the contents of y[1:5:2], starting at the first element and selecting every third element after that (and there are only two elements, so it stops after the first one): [[7, 8, 9, 10, 11, 12, 13]] Why were you expecting the other result? -- John Gordon A is for Amy, who fell down the stairs gordon@panix.com B is for Basil, assaulted by bears -- Edward Gorey, "The Gashlycrumb Tinies"