[reportlab-users] list reuse problem

Timothy Smith timothy at open-networks.net
Wed Jul 13 09:52:16 EDT 2005


Robin Becker wrote:

> Timothy Smith wrote:
>
>> i have a situation where i'm using a list of lists for a data in a 
>> table, then deleteing some elements from it and reusing it, and i'm 
>> getting this error. i'm double triple checked all the rows in it are 
>> the same lenght, so i'm a bit stumped as to what this error means.
>>
>> File 
>> "/usr/local/lib/python2.3/site-packages/reportlab/platypus/tables.py", 
>> line 419, in _hasVariWidthElements
>>    value = self._cellvalues[row][col]
>> IndexError: list index out of range
>>
> ..... you're probably hitting a mutable re-use problem. The lists are 
> not copied into the table internally. Deleting a row/column in one 
> usage will affect all so unless you are careful the error is fairly 
> easily created.
>
> For example
>
> >>> A=[[1,2,3],[4,5,6]]
> >>> B = A
> >>> del B[0][-1], B[1][-1]
> >>> A
> [[1, 2], [4, 5]]
> >>>

so how do i work around it?
i tried creating a whole new list by

for x in Roster:
        Roster2.append(x)
       
for i in Roster2:
     dlist = (4,6,8,10,12,14,16)
     for x in dlist:
         del(i[x])

and still i got an error


More information about the reportlab-users mailing list