Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #65343 > unrolled thread
| Started by | Jean Dupont <jeandupont314@gmail.com> |
|---|---|
| First post | 2014-02-03 08:50 -0800 |
| Last post | 2014-02-04 00:50 +0000 |
| Articles | 7 — 6 participants |
Back to article view | Back to comp.lang.python
[newbie] troubles with tuples Jean Dupont <jeandupont314@gmail.com> - 2014-02-03 08:50 -0800
Re: [newbie] troubles with tuples Asaf Las <roegltd@gmail.com> - 2014-02-03 08:59 -0800
Re: [newbie] troubles with tuples Larry Martell <larry.martell@gmail.com> - 2014-02-03 12:00 -0500
Re: [newbie] troubles with tuples Rustom Mody <rustompmody@gmail.com> - 2014-02-03 09:06 -0800
Re: [newbie] troubles with tuples Jean Dupont <jeandupont314@gmail.com> - 2014-02-03 11:18 -0800
Re: [newbie] troubles with tuples Terry Reedy <tjreedy@udel.edu> - 2014-02-03 16:52 -0500
Re: [newbie] troubles with tuples Denis McMahon <denismfmcmahon@gmail.com> - 2014-02-04 00:50 +0000
| From | Jean Dupont <jeandupont314@gmail.com> |
|---|---|
| Date | 2014-02-03 08:50 -0800 |
| Subject | [newbie] troubles with tuples |
| Message-ID | <893ced1a-dd55-48d7-8849-b2e45da2740e@googlegroups.com> |
I'm looking at the way to address tuples e.g. tup2 = (1, 2, 3, 4, 5, 6, 7 ); As I found out indices start with 0 in Python, so tup2[0] gives me 1, the first element in the tuple as expected tup2[1] gives me 2, the second element in the tuple as expected now here comes what surprises me: tup2[0:1] does not give me the expected (1,2) but (2,) what is the reason for this and how then should one get the first and the second element of a tuple? Or the 3rd until the 5th? thanks in advance and kind regards, jean
[toc] | [next] | [standalone]
| From | Asaf Las <roegltd@gmail.com> |
|---|---|
| Date | 2014-02-03 08:59 -0800 |
| Message-ID | <97e7f0a4-9e9e-4361-8183-d6f390e26148@googlegroups.com> |
| In reply to | #65343 |
On Monday, February 3, 2014 6:50:31 PM UTC+2, Jean Dupont wrote: > I'm looking at the way to address tuples > > e.g. > tup2 = (1, 2, 3, 4, 5, 6, 7 ); > As I found out indices start with 0 in Python, so > tup2[0] gives me 1, the first element in the tuple as expected > tup2[1] gives me 2, the second element in the tuple as expected > now here comes what surprises me: > tup2[0:1] does not give me the expected (1,2) but (2,) > what is the reason for this and how then should one get the first and the second element of a tuple? Or the 3rd until the 5th? > > thanks in advance and kind regards, > > jean Hi from http://docs.python.org/3.3/library/stdtypes.html?highlight=tuple#tuple " The slice of s from i to j is defined as the sequence of items with index k such that i <= k < j. If i or j is greater than len(s), use len(s). If i is omitted or None, use 0. If j is omitted or None, use len(s). If i is greater than or equal to j, the slice is empty." so in above k < j but not equal so in your example slice will be of only one member. /Asaf
[toc] | [prev] | [next] | [standalone]
| From | Larry Martell <larry.martell@gmail.com> |
|---|---|
| Date | 2014-02-03 12:00 -0500 |
| Message-ID | <mailman.6345.1391446843.18130.python-list@python.org> |
| In reply to | #65343 |
On Mon, Feb 3, 2014 at 11:50 AM, Jean Dupont <jeandupont314@gmail.com> wrote: > I'm looking at the way to address tuples > e.g. > tup2 = (1, 2, 3, 4, 5, 6, 7 ); > > As I found out indices start with 0 in Python, so > tup2[0] gives me 1, the first element in the tuple as expected > tup2[1] gives me 2, the second element in the tuple as expected > now here comes what surprises me: > tup2[0:1] does not give me the expected (1,2) but (2,) > > what is the reason for this and how then should one get the first and the second element of a tuple? Or the 3rd until the 5th? > > thanks in advance and kind regards, Some examples: a[start:end] # items start through end-1 a[start:] # items start through the rest of the array a[:end] # items from the beginning through end-1 a[:] # a copy of the whole array a[-1] # last item in the array a[-2:] # last two items in the array a[:-2] # everything except the last two items HTH, -larry
[toc] | [prev] | [next] | [standalone]
| From | Rustom Mody <rustompmody@gmail.com> |
|---|---|
| Date | 2014-02-03 09:06 -0800 |
| Message-ID | <6214e086-7616-41bc-8e82-665b01dddd25@googlegroups.com> |
| In reply to | #65343 |
On Monday, February 3, 2014 10:20:31 PM UTC+5:30, Jean Dupont wrote: > I'm looking at the way to address tuples > e.g. > tup2 = (1, 2, 3, 4, 5, 6, 7 ); > As I found out indices start with 0 in Python, so > tup2[0] gives me 1, the first element in the tuple as expected > tup2[1] gives me 2, the second element in the tuple as expected > now here comes what surprises me: > tup2[0:1] does not give me the expected (1,2) but (2,) Python 2.7.6 (default, Jan 11 2014, 17:06:02) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> tup2=(1,2,3,4,5,6,7) >>> tup2[0:1] (1,) >>> So assuming you meant (1,) and wrote (2,) :-) > what is the reason for this and how then should one get the first and the second element of a tuple? Or the 3rd until the 5th? Generally ranges in python are lower-inclusive upper-exclusive What some math texts write as [lo, hi) So if you want from index 1 to 2-inclusive it is 1 to 3 exclusive tup2[0:2] See for motivations http://www.cs.utexas.edu/~EWD/transcriptions/EWD08xx/EWD831.html And one more surprising thing to note is that negatives count from the end
[toc] | [prev] | [next] | [standalone]
| From | Jean Dupont <jeandupont314@gmail.com> |
|---|---|
| Date | 2014-02-03 11:18 -0800 |
| Message-ID | <c058fc2e-7c0f-492f-a2fb-aa9941181930@googlegroups.com> |
| In reply to | #65347 |
Op maandag 3 februari 2014 18:06:46 UTC+1 schreef Rustom Mody: > On Monday, February 3, 2014 10:20:31 PM UTC+5:30, Jean Dupont wrote: > > I'm looking at the way to address tuples > > e.g. > > tup2 = (1, 2, 3, 4, 5, 6, 7 ); > > As I found out indices start with 0 in Python, so > > tup2[0] gives me 1, the first element in the tuple as expected > > tup2[1] gives me 2, the second element in the tuple as expected > > now here comes what surprises me: > > tup2[0:1] does not give me the expected (1,2) but (2,) > > Python 2.7.6 (default, Jan 11 2014, 17:06:02) > [GCC 4.8.2] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > >>> tup2=(1,2,3,4,5,6,7) > >>> tup2[0:1] > (1,) > >>> > So assuming you meant (1,) and wrote (2,) :-) > > what is the reason for this and how then should one get the first and the second element of a tuple? Or the 3rd until the 5th? > Generally ranges in python are lower-inclusive upper-exclusive > What some math texts write as [lo, hi) > So if you want from index 1 to 2-inclusive it is 1 to 3 exclusive > tup2[0:2] > > See for motivations > http://www.cs.utexas.edu/~EWD/transcriptions/EWD08xx/EWD831.html > And one more surprising thing to note is that negatives count from the end Thank you (and the others) for making this "logical" kind regards, jean
[toc] | [prev] | [next] | [standalone]
| From | Terry Reedy <tjreedy@udel.edu> |
|---|---|
| Date | 2014-02-03 16:52 -0500 |
| Message-ID | <mailman.6366.1391464507.18130.python-list@python.org> |
| In reply to | #65343 |
On 2/3/2014 11:50 AM, Jean Dupont wrote: > I'm looking at the way to address tuples > e.g. > tup2 = (1, 2, 3, 4, 5, 6, 7 ); > > As I found out indices start with 0 in Python, so > tup2[0] gives me 1, the first element in the tuple as expected > tup2[1] gives me 2, the second element in the tuple as expected > now here comes what surprises me: > tup2[0:1] does not give me the expected (1,2) but (2,) > > what is the reason for this and how then should one get the first and the second element of a tuple? Or the 3rd until the 5th? > > thanks in advance and kind regards, This should be covered in the tutorial, which you should read if you have not already. -- Terry Jan Reedy
[toc] | [prev] | [next] | [standalone]
| From | Denis McMahon <denismfmcmahon@gmail.com> |
|---|---|
| Date | 2014-02-04 00:50 +0000 |
| Message-ID | <lcpdh4$vog$8@dont-email.me> |
| In reply to | #65343 |
On Mon, 03 Feb 2014 08:50:31 -0800, Jean Dupont wrote: > I'm looking at the way to address tuples e.g. > tup2 = (1, 2, 3, 4, 5, 6, 7 ); > > As I found out indices start with 0 in Python, so tup2[0] gives me 1, > the first element in the tuple as expected tup2[1] gives me 2, the > second element in the tuple as expected now here comes what surprises > me: > tup2[0:1] does not give me the expected (1,2) but (2,) > > what is the reason for this and how then should one get the first and > the second element of a tuple? Or the 3rd until the 5th? > > thanks in advance and kind regards, > > jean >>> tup = (0,1,2,3,4,5,6,7) >>> tup[0:1] (0,) >>> tup[1:2] (1,) >>> tup[2:3] (2,) >>> tup[0:2] (0, 1) >>> tup[2:5] (2, 3, 4) This is as I'd expect, as the notation [0:1] means: starting from the 0th element, up to and including the element preceding the first element Or [m:n] means starting from the mth element, everything up to and including the element preceding the nth element Are you sure you got (2,) for [0:1] and not for [2:3]? Are you sure your initial tuple is what you thought it was? -- Denis McMahon, denismfmcmahon@gmail.com
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.python
csiph-web