Tuple slices
George Sakkis
gsakkis at rutgers.edu
Mon Jan 24 21:50:52 CET 2005
"Fredrik Lundh" <fredrik at pythonware.com> wrote in message
news:mailman.1214.1106591959.22381.python-list at python.org...
> Steven Bethard wrote:
>
> >>>>>a = 1, 2, 3
> >>>>>b = a[:]
> >>>>>a is b
> >> True
> >
> > My impression was that full tuple copies didn't actually copy, but that slicing a subset of a
> > tuple might. Not exactly sure how to test this, but:
> >
> > py> a = 1, 2, 3
> > py> a[:2] is a[:2]
> > False
>
> yup. and to figure out why things are done this way, consider this case:
>
> >>> a = give_me_a_huge_tuple()
> >>> len(a)
> (a rather large number)
> >>> b = a[:2]
> >>> del a
>
> (IIRC, I proposed to add "substrings" when I implemented the Unicode string
> type, but that idea was rejected, for the very same "and how do you get rid of
> the original object" reason)
>
> </F>
Fair enough. So perhaps the question is whether such cases are more regular than something like:
a = give_me_a_huge_tuple()
slices = [a[i:j] for i in xrange(len(a)) for j in xrange(i+1, len(a)+1)]
George
More information about the Python-list
mailing list