Why? Look they are equal, initially. You do the same operation but hey you get different structures. Why do the two methods of constructing nested lists give different results?
>>> lll=[[[[[]]*2 for a in xrange(2)] for b in xrange(2)]]
>>> ll=[[[[[]]*2]*2]*2]
>>> lll
[[[[[], []], [[], []]], [[[], []], [[], []]]]]
>>> ll
[[[[[], []], [[], []]], [[[], []], [[], []]]]]
>>> ll==lll
True
>>> ll[0][0][0][0]=1
>>> lll[0][0][0][0]=1
>>> ll==lll
False           #Why?
Structure
[
        [
                [
                        [
                                [], 
                                []
                        ],
                        [
                                [], 
                                []
                        ]
                ],
                [
                        [
                                [], 
                                []
                        ],
                        [
                                [], 
                                []
                        ]
                ]
        ]
]
 
     
     
    