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 -- https://mail.python.org/mailman/listinfo/python-list