tbour...@doc.ic.ac.uk wrote:
Hi,

I was looking for a facility similar to slices in python library that would avoid the implicit creation of a new list and copy of elements that is the default behaviour. Instead I'd rather have a lazy iteratable object on the original sequence. Well, in the end I wrote it myself but I was wondering if I missed sth in the library. If I didn't is there a particular reason there isn't sth like that? I find it hard to believe that all slice needs have strictly copy semantics.

Cheers,
Themis

Two questions:  1) What is "sth"?  and 2), What copy?

Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]
In [1]: class dummy(object):
   ...:     pass
   ...:

In [2]: a = dummy()
In [3]: b = dummy()
In [4]: c = dummy()
In [5]: d = dummy()
In [6]: e = dummy()
In [7]: list1 = [a, b, c, d, e]
In [8]: list1
Out[8]:
[<__main__.dummy object at 0x0130C510>,
 <__main__.dummy object at 0x013F1A50>,
 <__main__.dummy object at 0x00A854F0>,
 <__main__.dummy object at 0x00A7EF50>,
 <__main__.dummy object at 0x00A7E650>]

In [9]: list2 = list1[1:3]
In [10]: list2
Out[10]:
[<__main__.dummy object at 0x013F1A50>,
 <__main__.dummy object at 0x00A854F0>]

In [11]: list2[0] is list1[1]
Out[11]: *True*
In [12]: list2[1] is list1[2]
Out[12]: *True*

No copying of items going on here.  What do you get?

~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to