[Tutor] Cloning lists to avoid alteration of original list
Alistair McGowan
alistair.mcgowan at ucl.ac.uk
Tue Jan 13 09:42:32 EST 2004
Dear All,
I am having problems with cloning a list in such a
way that it alters one list but not the other. The list for the new
area should have "4"
I have tried the standard procedure of taking a slice of the list,
renaming it and operatiing on that, but to no avail. One issue that
may make a difference is that I am taking a slice of a longer list,
rather than the complete list.
Here is the section of code, which is a class. I have tried cloning
the two lists outside of the class, as well as within the class, but
the program always carries out the changes to both lists. I apologize
for the length of the extact. If further information is needed,
please let me know.
Thanks in advance,
Al
class mergeTaxa: # geodispersal of taxon lists from colliding areas
def __init__(self,m,y,clone1,clone2):
self.mergetaxa=[] #empty list
self.mergetaxa.append (name)#id of new merged area
one = clone1
two = clone2
print "one", one
print "two", two
temp = []# an empty list for listing taxa for comparison
for e in range (0, len(one)):# starts to loop over
list 1 and writes to merged list
x = one[e] #extracts info for each taxon in area
a = one[e][0]#gets the id #
if one [e][2]==0: #checks if taxon is alive
one[e][3]= 4
print clone1
self.mergetaxa.append(x)
temp.append(a)
else:
pass
for j in range (0, len(two)):# starts loop over other list
p=two[j]
f = two[j][0]
if two[j][2]==0:
z = temp.count(f)# checks if taxon
occurs in other area list
if z ==0: # if not add to new area list
two[j][3]=4
self.mergetaxa.append(p)
else:
pass
else:
pass
merge = self.mergetaxa
print "merged", merge
print clone1
print clone2
tbya.append(merge)#writes out to main taxon by area matrix
--
Alistair J. McGowan
Department of Earth Sciences,
University College, London,
London
WC1E 6BT
Phone: TBA
Fax: +44 (0)20 7387 1612
"Hope is a duty from which paleontologists are exempt."
David Quammen
"Empty causes. You've got yours and I've got mine"
Greg Graffin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20040113/d1d8f18b/attachment.html
More information about the Tutor
mailing list