Object copies...
Justin Shaw
wyojustin at hotmail.com
Mon Dec 23 08:04:45 EST 2002
More information about the Python-list mailing list
Mon Dec 23 08:04:45 EST 2002
- Previous message (by thread): Object copies...
- Next message (by thread): Expat issue
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"DP" <pennedinil at excite.com> wrote in message news:6af8e801.0212222321.3bd5b56f at posting.google.com... > Hi all, > > Please help me clear my confusion here. I'm running the script below. > I'm expecting to get a listing of my original object and the new > object created by 'getdates'. Instead I'm seeing the function > 'getdates' changing my original object, 'mydates'. > > Q1: Why does 'getdates' not create a copy of 'mydates' instead of > operating on the original object? I.e., how do I change this behavior? It boils down to the fact that lists are "mutable". Passing mutable arguments to functions mearly passes a referance to that object so any changes made in the fucntion affect the original. This behavior may seem counter-intuitive but turns out in practice to be quite handy. When you want a copy you need to create one explicitly (see copy.deepcopy documentation.) > Q2: [Unrelated] I'm trying to parse these dates into d, m, y and can't > think of any other way but on a per-case basis. Any suggestions on a > better aproach? I tried - > try: > d. m, y = Dates[i].split("/") > except: ValueError ...<etc> > but there are too many exceptions to the rule, which brings me back to > a case-based algorithm. See time.strftime. > > Thanks in advance. > Dinil. Hope that helps. Justin > # ----------------------------------------------------------------------- > def indexedList(list): > return map(None, range(len(list)), list) > > def getdate(Dates): > for i, j in indexedList(Dates): > j = j.replace(".", "/") > j = j.replace("-", "/") > j = j.replace(" ", "/") > Dates[i] = j > return Dates > > > if __name__ == "__main__": > mydates = ['31082002','31.08.2002','31.08.2002', > '30092002','30.09.2002','30.09.2002', > '309 2' ,'30-09-2002','30-09-2002', > '318 2' ,'31.08.2002','31/08/2002', > '30092002','30-09-2002','30-09-2002', > '31082002','31-08-2002','31-08-2002', > '309 2002','30.09.2002','30.09.2002', > '318 2002','31.08.2002','31.08.2002', > '30092002','30.09.2004','' , > '31082002','31.08.02' ,'' , > '30092002','30.09.02' ,'30.09.2002', > '31082002','31.08.02' ,'31.08.2002', > '30092002','30.09.2002','30/9/2002' , > '31082002','31/8/2002' ,'31/8/2002' , > '31082002','31082002' ,'' , > '30092002','30092002' ,'30092002' , > '31082002','31.08.2002','31.08.2002' > ] > newdates = getdate(mydates) > print newdates > print mydates
- Previous message (by thread): Object copies...
- Next message (by thread): Expat issue
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list