Nested python list assignment
<p>What I want to do is assign a nested list to another list. For example, from alist to blist.</p>

<pre><code>alist = [[0], [1], [2], [3]]
blist = alist[:]
blist[0].append(1)
</code></pre>

<p>In this way, <code>id(alist[0])</code> equals <code>id(alist[1])</code>, so alist also changes to <code>[[0,1], [1], [2], [3]]</code>, that's not what I want.</p>

<p>The workaround I have is:</p>

<pre><code>alist = [[0], [1], [2], [3]]
blist = []
for item in alist:
    blist.append(item[:])
blist[0].append(1)
</code></pre>

<p>In this workaround, alist won't be influenced by changing blist's items.
However, it seems not so pythonic, is there any better resolution? That could resolve the deep copy of more the 2 level nested list. eg: <code>alist = [[[1], 10], [[2], 20], [[3], 30]]</code></p>
