How to deepcopy a list of user defined lists?

  • Thread starter srinivasan srinivas
  • Start date
S

srinivasan srinivas

Hi,
I have a class which is a subclass of builtin-type list.

#------------------------------------------------------------------------------
class clist(list):
    def __new__(cls, values, ctor):
        val = []
        for item in values:
            item = ctor(item)
            val.append(item)
       
        self = list.__new__(cls, val)
        self.__values = val
        self.__ctor = ctor
        return self
#-----------------------------------------------------------------------------------

I have a list of clists, say c1 = [clist1, clist2, clist3]
How do i deepcopy this list? I tried using copy.deepcopy() method. But i got some errors. Please suggest me.

Thanks,
Srini


Add more friends to your messenger and enjoy! Go to http://messenger.yahoo.com/invite/
 
S

Steven D'Aprano

Hi,
I have a class which is a subclass of builtin-type list.

#------------------------------------------------------------------------------
class clist(list):
    def __new__(cls, values, ctor):
        val = []
        for item in values:
            item = ctor(item)
            val.append(item)
       
        self = list.__new__(cls, val)
        self.__values = val
        self.__ctor = ctor
        return self
#-----------------------------------------------------------------------------------

I have a list of clists, say c1 = [clist1, clist2, clist3] How do i
deepcopy this list? I tried using copy.deepcopy() method. But i got some
errors. Please suggest me.


Don't tell us what the errors are, I love guessing games!!!

Let's see... is it TypeError because your class doesn't override the
list.__init__ method?


Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list() takes at most 1 argument (2 given)


Before you get to deepcopy, you actually need to have clist work
correctly. Once you've done that, show us what error you get.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top