Nested list problem - please...

M

Martin Hvidberg

Dear list

I have this code, it builds up a data structure of nested lists, and filling data in them.
My problem is that it seems that one of the lists SA[1] is not a list of unique instances but rather individual links to the same variable.
In the example below I assign 'X' to what I intended to be the first Compounds Name. But rather the 'X' goes into all the Compounds Name.
I thought that the [:] in SAdata.extend([CP[:]]) would ensure copies rather than links to.
What is going wrong?

I include sample code, and I include the output it produces, and I manually inserted some line breaks and some indents, for readability.

:) Martin

--- Code Start ---
LV = list() # LV for Lable Value pair
LV.extend(['lable','0'])

CP = list() # CP for ComPund
for i in range(0,5):
CP.extend([LV[:]]) # incl. 5 _copies_ of LV
CP[0][0] = 'Compound name'
CP[1][0] = 'Tgt'
CP[2][0] = 'Q1'
CP[3][0] = 'Q2'
CP[4][0] = 'Q3'

SA = list() # SA for SAmple
SAheader = list()
for i in range(0,3):
SAheader.extend([LV[:]])
SAheader[0][0] = 'fileinfo.txt'
SAheader[1][0] = 'Data file'
SAheader[2][0] = 'Sample name'
SA.extend([SAheader])
SAdata = list()
for i in range(0,2):
SAdata.extend([CP[:]])
SA.extend([SAdata])

print SA
SA[1][0][0][1] = 'X'
print SA
--- Code End ---


[
[
['fileinfo.txt', '0'],
['Data file', '0'],
['Sample name', '0']
],
[
[
['Compound name', 'X'],
['Tgt', '0'],
['Q1', '0'],
['Q2', '0'],
['Q3', '0']
],
[
['Compound name', 'X'],
['Tgt', '0'],
['Q1', '0'],
['Q2', '0'],
['Q3', '0']
]
]
]
 

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

Forum statistics

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

Latest Threads

Top