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